C# Microsoft标识-撤销授权
我正在开发一个.NET应用程序,可以使用Graph API代表用户发送电子邮件 提示用户授权应用程序;然后使用获取的访问令牌调用Graph API。刷新令牌用于在旧的访问令牌过期时发出新的访问令牌,如下所述: 几个问题/意见:C# Microsoft标识-撤销授权,c#,azure,microsoft-graph-api,microsoft-identity-platform,C#,Azure,Microsoft Graph Api,Microsoft Identity Platform,我正在开发一个.NET应用程序,可以使用Graph API代表用户发送电子邮件 提示用户授权应用程序;然后使用获取的访问令牌调用Graph API。刷新令牌用于在旧的访问令牌过期时发出新的访问令牌,如下所述: 几个问题/意见: 假设用户John授权应用程序代表他发送电子邮件。如果管理员从azure门户删除该应用,则John授权该应用时颁发的访问/刷新令牌仍将有效 如果访问令牌仍然处于活动状态,则可以使用它调用graph api 如果访问令牌已过期,则刷新令牌仍可用于请求新的访问令牌 这种行为
- 如果访问令牌仍然处于活动状态,则可以使用它调用graph api李>
- 如果访问令牌已过期,则刷新令牌仍可用于请求新的访问令牌
但是,我注意到,如果John重新授权应用程序以代表他执行操作,应用程序将不再显示在屏幕上。这种行为似乎有点不一致。用户撤销对应用程序的访问权的正确方式是什么?如果用户已授予对应用程序的访问权,Azure AD将为资源颁发访问令牌和刷新令牌 访问令牌的生存期通常约为1小时。在其生命周期内,即使应用程序被删除,它仍然可用,但您将无法使用刷新令牌再次获取访问令牌
如果您需要在访问令牌的生命周期内撤销授权,请参阅:和。我注意到,如果管理员从用户中删除应用程序,刷新令牌仍然可以工作。这是有意的吗?如果用户删除了应用程序(通过转到),则刷新令牌停止工作参见:@Timo89我对此做了很多测试并得出结论:在您将应用程序分配给用户并使用用户登录以获取访问令牌和刷新令牌之后,如果此时使用管理员删除分配给应用程序的用户,则之前获得的刷新令牌确实可用是的,它仍然可以获得新的访问令牌。但是,如果使用用户或管理员删除应用程序,则刷新令牌将不可用,因为在使用刷新令牌获取访问令牌时必须使用
客户端id
。