当前状态:我有一个移动应用程序,它使用 PKCE 流通过 OAuth 将用户登录到 Azure AD。经过身份验证后,应用程序将使用 token 从某些 API 获取各种形式的数据。
随着应用程序的发展,将 SSO 与另一个 Web 应用程序集成的需求已经出现(随着我们的前进,将会添加更多的服务提供商)。它将充当服务提供商,并支持 IDP 通过 SAML 发起的身份验证。
问题:一旦在 AD 租户下配置了此服务提供商,是否有办法将我们的 OAuth token 交换或转换为可以传递到 SAML SP 的内容,而无需重新启动-认证?我是否以正确的方式思考这个问题?我主要好奇的是,我们是否需要在移动应用程序中重新实现身份验证以支持 SAML(即建立某种可以充当移动应用程序代理的基于 Web 的 SAML 服务)?如果该路由是实现我们的要求所必需的,我假设有一种方法仍然可以获得有效的 OAuth 或等效 token ,我们可以使用它来发送到我们的 API。
如果这是一个重复的问题,我深表歉意,但我找不到任何具有类似细节的内容。提前致谢!
最佳答案
您当然可以使用 OAuth 2.0 OBO 流程,该流程允许基于 OAuth2 的应用程序访问使用 SAML token 的 Web 服务 API 端点。您可以在这里阅读更多内容,它对如何实现相同目标有一些非常好的指导: https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#saml-assertions-obtained-with-an-oauth20-obo-flow
确保您的 SAML 请求按照此处提到的详细信息进行了良好的表述: https://learn.microsoft.com/en-us/azure/active-directory/develop/single-sign-on-saml-protocol
关于Azure AD 单点登录 : Mobile app with OAuth and SAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66105201/