Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将应用程序与Azure Active Directory集成:重新验证Id_令牌以检查用户是否已注销_C#_Authentication_Token_Azure Active Directory_Invalidation - Fatal编程技术网

C# 将应用程序与Azure Active Directory集成:重新验证Id_令牌以检查用户是否已注销

C# 将应用程序与Azure Active Directory集成:重新验证Id_令牌以检查用户是否已注销,c#,authentication,token,azure-active-directory,invalidation,C#,Authentication,Token,Azure Active Directory,Invalidation,目前,我正在使用Microsoft的此库将我的应用程序与Azure AD集成: https://github.com/AzureAD/azure-activedirectory-library-for-js 我的应用程序有自己的用户身份验证。应用程序只存储用户名,并使用它与Azure AD中的用户名进行映射。我使用OAuth隐式授权和id_令牌来登录用户 以下是我正在实施的身份验证流程: 用户点击登录 应用程序将用户重定向到microsoft登录页 用户输入他们的用户名/密码 Microsof

目前,我正在使用Microsoft的此库将我的应用程序与Azure AD集成:

https://github.com/AzureAD/azure-activedirectory-library-for-js
我的应用程序有自己的用户身份验证。应用程序只存储用户名,并使用它与Azure AD中的用户名进行映射。我使用OAuth隐式授权和id_令牌来登录用户

以下是我正在实施的身份验证流程:

  • 用户点击登录
  • 应用程序将用户重定向到microsoft登录页
  • 用户输入他们的用户名/密码
  • Microsoft登录页面将用户重定向到我的应用程序中的azure登录处理页面
  • 应用程序的后端代码使用C#验证收到的令牌,以确保它来自Azure AD,代码示例来自:
  • 如果令牌有效,则检查系统中是否存在令牌中的用户名
  • 如果是,则使用从应用程序的OWIN上下文生成的令牌对用户进行身份验证
  • 问题

    上面步骤5中的库只能验证令牌是否与Azure租户、客户端id及其过期时间有效。它不需要网络访问

    这意味着,即使用户已经使用microsoft注销url:注销,azure的id_令牌仍然有效

    我的问题是:

    有没有办法检查用户是否已在Azure AD中注销,然后使id_令牌无效,并要求用户重新登录

    更新


    我使用id_令牌是因为我只要求用户在Azure AD上拥有有效帐户,而不需要与Azure AD取得任何进一步联系。

    id令牌在到期之前被视为有效。通常,web应用程序将应用程序中用户的会话生存期与为该用户颁发的ID令牌的生存期相匹配。您可以调整ID令牌的生存期,以控制web应用程序使应用程序会话过期的频率,以及需要用户使用Azure AD重新身份验证的频率(以静默方式或交互方式)

    访问令牌生存期策略控制此资源的访问令牌和ID令牌被视为有效的时间。减少访问令牌生存期属性可降低恶意参与者长时间使用访问令牌或ID令牌的风险。(这些令牌不能被撤销。)折衷是性能会受到不利影响,因为必须更频繁地更换令牌

    要创建策略,请运行以下命令:

    动力壳

    New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "WebPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"
    
    参考: