Open Id Connect的令牌存储在哪里?

时间:2019-07-09 07:07:47

标签: azure azure-active-directory openid-connect

我正在使用Open ID Connect,并从Azure Active Directory请求令牌。我正在使用授权代码流,因此我同时收到id_token和access_token。我正在使用.NET Core。

我的Open Id Connect配置如下:

    <!-- In Template File -->
    <div [innerHtml]="testHtml"></div>

注意将“保存令牌”设置为 true

用户登录后,我可以按以下方式检索两个令牌:

select id, name
from table1
where parent_id = '${parent_id}'

我的问题是,这些令牌实际存储在哪里,如何配置这些令牌的存储方式?

我还听说,在授权代码流中,身份提供者将返回授权代码,然后服务器将使用该代码来请求令牌。但是,我没有以编程方式进行任何操作,但仍能够检索令牌。这是使用Open Id Connect自动处理的吗?

2 个答案:

答案 0 :(得分:2)

enter image description here

这些令牌实际保存在哪里?

正如OpenID Connect protocol图架构所描述的,当启动新会话时,将返回新的cookie以控制该会话。该“会话cookie”是基于“ ID令牌”创建的,并且只要此cookie有效,就将用户视为已通过身份验证。在使用OpenID Connect(OIDC)时,它会创建cookie并将令牌保存在那里。您可以参考此docs

如何配置这些令牌?

如果要配置令牌机制,Microsoft将为此提供库。您可以使用ADALMSAL进行自己的配置。

这是使用Open Id Connect自动处理的吗?

它具有某种后台机制,但是您必须使用身份验证库来处理应用程序代码。您可以参考official docs

有关更多详细信息,您可以参考最新的文档

  1. Authentication implementation
  2. Authentication Libraries
  3. Code sample

答案 1 :(得分:0)

response_type设置为code,表示您正在使用授权码流。

当您将OIDC身份验证代码流以及clientid和clientsecret一起使用到get token时,工作过程如下:

enter image description here

1。用户在常规Web应用程序中单击“登录”。

2.Auth0的SDK将用户重定向到Auth0授权服务器(/授权端点)。

3。您的Auth0授权服务器将用户重定向到登录和授权提示。

4。用户使用已配置的登录选项之一进行身份验证,并且可能会看到一个同意页面,其中列出了Auth0将授予常规Web应用程序的权限。

5。您的Auth0授权服务器使用授权码将用户重定向回应用程序。

6.Auth0的SDK将此代码连同应用程序的客户端ID和客户端密钥一起发送到Auth0授权服务器(/ oauth /令牌端点)。

7。您的Auth0授权服务器验证代码,客户端ID和客户端密钥。

8。您的Auth0授权服务器以ID令牌和访问令牌(以及可选的刷新令牌)作为响应。