gpt4 book ai didi

Azure B2C 与 AWS Cognito 联合身份集成

转载 作者:行者123 更新时间:2023-12-03 17:36:47 27 4
gpt4 key购买 nike

我正在将 Azure B2C 与 AWS 集成,即将 AWS Cognito 与 Azure B2C 设置为联合身份提供商,并将其用于移动应用程序的登录目的。

在大多数情况下,我相信我已经正确配置了所有内容。这就是我到目前为止所做的

  1. 我创建了一个 B2C 租户,并在租户中设置了一个“应用程序”以及 SignUpAndSignInPolicy。该应用程序同时启用了 native 和 Web 客户端,并且还允许隐式流。
  2. 我已将 Azure B2C 租户配置为 AWS 中的身份提供商,并为 IdP 创建了必要的角色。
  3. 我已创建一个 AWS Cognito 身份池并将其配置为使用上述 IdP
  4. 我正在使用 MSAL 库通过 Azure B2C 进行身份验证,特别是 MSALPublicClientApplication.init(clientId, kAuthority) 方法,后跟 acquireToken
  5. 这会在浏览器中呈现交互式登录,并通过自定义 URL 将 token 返回到应用程序。该 token 有效,我已使用 JWT tool 验证了它.
  6. 然后,我使用在步骤 3 中创建的 Cognito 身份池和一个自定义的 IdentityProviderManager 设置一个 AWSCognitoCredentialsProvider ,该自定义 IdentityProviderManager 是我根据 AWS 文档实现了 getToken 和登录方法的类。
  7. 然后,我通过登录方法内的“return AWSTask(["providerName: "id_token"] 语句将第 5 步中的 token 传递给 Cognito。

经过大量来回之后,我已经成功克服了一路上的大部分障碍,但是我现在收到了来自 AWS 的 token 验证错误,具体来说:

error: Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=8 "(null)" UserInfo={__type=NotAuthorizedException, message=Invalid login token. Couldn't verify signed token.}

谷歌搜索该错误实际上不会产生大量结果,但从我可以看出,应用程序中的事件顺序是正确的,但是AWS在与Azure通信时提示 token 的验证。

AWS 中没有太多可以配置身份提供程序的内容,例如 secret 、范围或任何其他内容,因此我不太确定该在哪里查找。

我希望对于经验丰富的 OpenID 专业人士来说,此错误消息的意义比对我而言更重要。

一些我不确定的事情可能是相关的。1. Azure B2C 在我当前未使用的应用程序下有一个“ key ”的概念,因为我无法在实现中指定某种 key 。2. MSALPublicClientApplication.init 方法返回一个应用程序实例,然后我用它来调用 application.acquireToken(forScopes: kScopes)。我不知道要为范围值添加什么,因为从我读到的内容来看,我只需要“openid”和“offline_access”,但是当我尝试指定这些值时,我收到一个错误,默认情况下它们已经包含在内我可以在 API 调用中指定它们。但是,我不允许将此字段留空,因此目前我有 Azure B2C 应用程序 ID(以 GUID 的形式),我不确定它是否正确。

非常感谢您的帮助!

最佳答案

您的设置看起来正确。不确定 MSAL 库,但直接从 Azure B2C 控制台进行测试时,您会获得不同的 token ,具体取决于您是否在授权 URl 中提及您的登录策略(使用“p”参数)。没有这个参数的可以工作,但是有这个参数的不行。与 OIDC Discovery 的工作原理及其在 AWS IAM 控制台中的配置方式有关。

关于Azure B2C 与 AWS Cognito 联合身份集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com