Authentication 将SAML与AAD交换为JWT

Authentication 将SAML与AAD交换为JWT,authentication,Authentication,我有一个内部应用程序,允许用户使用Azure AD登录。在身份验证时,会返回SAML断言。但是,应用程序进行的某些调用需要JWT。当用户登录时,我获得JWT的最佳方式是什么?或者我有没有办法把SAML换成JWT?免责声明:我不是这方面的专家;我也在学习它,并与类似的问题作斗争。也就是说,这是我的理解 我很确定SAML和JWT之间没有联系。这并不奇怪,因为SAML2.0可以追溯到2005年,JWT在2012年左右启动。因此,从逻辑上讲,SAML规范不可能对JWTs做任何说明 如果我的理解是正确的,

我有一个内部应用程序,允许用户使用Azure AD登录。在身份验证时,会返回SAML断言。但是,应用程序进行的某些调用需要JWT。当用户登录时,我获得JWT的最佳方式是什么?或者我有没有办法把SAML换成JWT?

免责声明:我不是这方面的专家;我也在学习它,并与类似的问题作斗争。也就是说,这是我的理解

我很确定SAML和JWT之间没有联系。这并不奇怪,因为SAML2.0可以追溯到2005年,JWT在2012年左右启动。因此,从逻辑上讲,SAML规范不可能对JWTs做任何说明

如果我的理解是正确的,您有两个选择:

  • 不要直接使用SAML。不要与SAML IdP(身份提供者)交互,而是将OpenID Connect和OAuth 2.0与充当身份验证代理的提供者一起使用。将代理配置为充当所选SAML IdP的服务提供者。将应用程序配置为充当身份验证代理上的依赖方(我认为是OAuth术语)。然后你的应用程序就是OAuth 2.0/OpenID Connect/JWT。与SAML的唯一交互是配置身份验证代理。主要的缺点是现在您必须选择并支付身份验证代理和SAML IdP

  • 编写您自己的身份验证/授权服务以使用SAML断言并发布JWT。无论如何,这可能是必要的,这取决于您需要如何在JWTs中表示授权信息


由于这更多的是一个与编程相关的问题,您可能会在堆栈溢出问题上得到答案。您的问题太广泛了。