React + rails 应用程序 AAD 和 OpenID 连接

React + rails Application AAD and OpenID connect

我正在开发一个应用程序,它使用 React(更准确地说是 nextjs)和 rails 上的 Ruby 作为我的后端。尽管如此,我正在尝试使用 AAD 作为我的身份提供程序。

我需要知道我使用 OIDC 的方法是否正确以及如何实现它。

遵循协议规则 (https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc),我尝试并失败的第一件事是让用户登录以获取 authorization_code,然后将其交换为 access_token 在我的后端。

    window.location.assign(
      url.build({
        host: process.env.NEXT_PUBLIC_AAD_AUTHORITY,
        path: "/oauth2/v2.0/authorize",
        query: {
          response_type: "code id_token",
          client_id: process.env.NEXT_PUBLIC_AAD_CLIENT_ID,
          scope: "openid https://graph.microsoft.com/.default",
          redirect_uri: "http://localhost:3000/callback",
          response_mode: "form_post",
          nonce: code_challenge,
          code_challenge_method: "S256",
          code_challenge: code_challenge,
        },
      })
    );

由于我使用的是 OICD,响应模式必须是“form_post”或“片段”。

form_data_request

我的问题是我不知道如何接收这种响应,因为我没有使用它当时可用的提取(生成 CORS 错误)。

那么....有什么想法吗?

您使用 OIDC is correct because rails fully support OIDC. To implement you need to configure the tenant in Azure AD then register a new app in you tenant Azure Active Directory. Go to Azure portal and click on “App registration” and on “New registration”. Lastly, move to your rails app and then integrate your application with Azure active directory. Here 的方法是可以指导您的完整指南。