zoukankan      html  css  js  c++  java
  • 使用Aouth2进行身份验证

    如果要调用邮件API,应用程序需要从Azure AD出获得访问令牌。在此之前,需要现在应用程序门户中注册此应用

    一、注册应用(授权代码流)

    在应用程序注册门户中注册应用程序可以与outlook.com兼容,但也有一些在Azure管理门户中注册的情况:

    1、使用Oauth2客户端凭据授予流

    2、需要访问除outlook之外的其他office365工作负载(sharepoint)

    注意:使用Azure管理门户注册的应用不与outlook.com兼容,并且无法动态的申请访问权限。同时,在Azure管理门户中注册的应用程序将不会显示在应用程序管理门户中,必须由Azure管理门户对其进行管理。

    为此,用户需要拥有office365工作或学校账户、或是microsoft账户

    二、获取授权代码

    授权代码流的第一步就是获取授权代码,用户登录并同意应用所需访问级别后,Azure会返回此授权代码

    应用会为用户构造登陆URL,必须在浏览器中打开此URL,用户才能登录并同意

    登陆URL基础格式如下:

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize

    同时,应用还将会把查询参数附加在基URL中,以便Azure知道是哪个应用在申请,参数如下:

    client_id:注册应用时生成的客户端id

    redirect_url:用户登录并同意后,Azure会重新定向到的位置,必须对应于注册应用时所使用的重定向URL值

    scope:应用所需访问范围的空格分割列表

    response_type:应用预定的响应类型,对于授予流,始终是code

    三、代码授予流请求

    用户会看到屏幕(显示应用名称),登陆后,应用程序会显示所需要的访问权限提示用户是否允许或拒绝,如果用户允许,则浏览器会重新定向到初始请求中指定的重定向URL

    四、登录成功后的重定向请求

    url中code的查询参数值为授权代码,下面将交换此授权代码来获得访问令牌

    五、获取访问令牌

    为了获取访问令牌 ,应用会将表单编码参数发布到请求令牌url中

    client_id:注册应用时生成的客户端id

    client_secret:

    redirect_url:此值必须与授权代码请求中的值相同

    grant_type:应用的授予类型,对于授予流,这始终是authorization-code

    code:上一部中获得的code查询值

  • 相关阅读:
    State Management
    排序效率小PK
    ES,ZK,Mysql相关参数优化
    ES翻译之Function Score Query
    打算坚持学习技术的习惯
    面试——并发基础知识1
    码云的GIT操作
    CountDownLatch模拟高并发测试代码
    Bloom Filter的应用
    面试题1—选取同一个字符第一不重复的字符
  • 原文地址:https://www.cnblogs.com/zhuyan-dailycheck/p/9835116.html
Copyright © 2011-2022 走看看