注册Azure AD 应用程序
作者:陈希章 发表于2017年3月22日
在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是,开发人员需要访问Microsoft Graph的话,其实是事先需要注册一个应用程序的。Graph 浏览器是特例,因为这个应用程序是微软官方注册好的。而大家在POSTMAN这篇文章中已经看到我注册的自定义应用程序的效果。我这里再针对这个问题展开介绍。
目前针对Microsoft Graph的应用程序注册,有两种途径:
- Azure AD应用程序,它仅适合于开发人员希望用户能授权访问工作或者学校的账号。
- Azure AD 2.0应用程序,它适合于开发人员希望既希望用户授权访问工作或者学校的账号,也能授权访问个人账号。
前一种方式也可以称为Azure AD 1.0,从趋势上来说,后者将逐渐全面取代,成为日后主要的方式。但就目前而言,2.0中所提供的服务数量还没有1.0多。
创建应用程序
这一篇文章,我首先介绍Azure AD应用程序这种注册方式。
我在之前已经介绍过,其实Microsoft Graph的一个基础是Azure AD,所以第一步需要使用你的Office 365账号登录到Azure管理中心 https://portal.azure.com
点击左侧的Azure Active Directory,然后点击“应用注册”
点击“新应用程序注册”按钮,输入必要的信息即可创建一个新的应用程序
这里要给大家介绍,Auzre AD应用程序有两种主要类型,一种是Web应用/API,另外一种是“本机”应用,其中通常指的是网站或者服务站点,或者则指的是桌面应用或者移动应用。如果选择前者,那么需要提供登录Url, 这个需要填写对应的网站真正的登录路径;而如果选择了后者,则需要提供重定向URL,这个地址其实是可以随便填,例如http://localhost 即可。
点击“创建”按钮,就可以快速完成应用程序的创建工作。
申请权限
接下来我们需要为这个应用程序申请必要的权限。点击上图中的“所需权限”按钮,然后依次进行如下操作
在委派权限中选择如下四个权限
创建密钥 [可选]
这一步并不是必须的。一般情况下,我们调用Microsoft Graph之前,都会弹出(或者跳转)到指定的页面要求用户去输入账号信息,并且亲自确认授权。但是如果我们的应用程序是一个后台的服务,它需要一直运行,而且是没有交互界面的,这种情况下则需要另外创建一个密钥,同时采用Client Credential的方式来获取授权。(这个具体代码的做法,我会在后续的范例程序中做介绍)
创建密钥很简单,你需要指定名称和时效,然后点击“保存”后,会自动生成一个密钥。请一定注意,这个密钥必须马上复制妥善地保存,因为在此刷新页面它就不可查看了。
如果我们是为后台服务类应用程序进行注册,那么除了创建密钥外,还需要为应用程序申请“应用程序权限”,而不是“委派权限”。
委派的意思,指的是代理当前用户进行操作,所以它是需要用户交互式授权的。而“应用程序权限”则是不跟具体某个用户有关,是直接授予应用程序的权限。
小结
要进行Microsoft Graph的开发,必须要在Azure AD中进行应用程序的注册,由于历史的原因,目前我们有两个不同的版本。本文介绍了Auzre AD 1.0中注册应用程序的步骤,并且也说明了三种不同类型的应用(Web 应用/API ,本机,后台服务),以及两种不同的权限(委派权限,应用程序权限)。
注册Azure AD 应用程序的更多相关文章
- 注册Azure AD 2.0 应用程序
作者:陈希章 发表于 2017年3月22日 上一篇 介绍了Microsoft Graph应用程序的一些概念,以及目前还比较普遍的Azure AD 1.0应用程序的注册方式.但正如我多次提到的那样,虽然 ...
- Azure AD B2C(二)使用Azure AD B2C为ASP.NET Core 应用设置社交帐户(邮箱)登录/注册
一,引言 上次关于Azure AD B2C 讲到一些概念,有介绍到,Azure AD B2C 也是一种身份验证的解决方案,但是它运行客户使用其首选的社交,企业或者本地账户标识对应用程序和API进行单一 ...
- Azure AD(二)调用受Microsoft 标识平台保护的 ASP.NET Core Web API 上
一,引言 上一节讲到Azure AD的一些基础概念,以及Azure AD究竟可以用来做什么?本节就接着讲如何在我们的项目中集成Azure AD 包含我们的API资源(其实这里还可以在 SPA单页面应用 ...
- 【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization
Azure Active Directory (Azure AD) is Microsoft's cloud-based identity and access management service, ...
- 掀起Azure AD的盖头来——深入理解Microsoft Graph应用程序和服务权限声明
作者:陈希章 发表于 2017年7月12日 引子 这是一篇计划外的文章.我们都知道要进行Microsoft Graph的开发的话,需要进行应用程序注册.这个在此前我已经有专门的文章写过了.但这里存在一 ...
- Azure AD(五)使用多租户应用程序模式让任何 Azure Active Directory 用户登录
一,引言 距离上次分享关于 “Azure AD" 的知识过去差不多2个多月了, 今天最近刚好也是学习,分享一下关于Azure AD 使用多租户应用程序模式让任何 Azure Active D ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证-2.2身份验证开发]
2.2身份验证开发 在我们的案例中,我们是用户通过Web应用程序进行身份识别. 上面的图示说明了如下的一些概念 l Azure AD 是标识提供程序,负责对组织的目录中存在的用户和应用程序的标识进行验 ...
- 用Azure AD 实现Web 应用身份认证的Multi-Factor Authentication(MFA)
最近客户有个需求,希望把面向public的Web应用中的终端用户数据库由Azure AD来实现,同时希望可以用MFA来实现用户身份认证.这个想法非常好,通过使用Azure的managed servic ...
- 无责任Windows Azure SDK .NET开发入门(二):使用Azure AD 进行身份验证
<編者按>本篇为系列文章,带领读者轻松进入Windows Azure SDK .NET开发平台.本文为第二篇,将教导读者使用Azure AD进行身分验证.也推荐读者阅读无责任Windows ...
随机推荐
- plsql远程连接虚拟机上的oracle
下载oracle instantclient_11_2和plsql 将oracle instantclient_11_2解压到任意目录 在此目录下新建network,在network目录下新建admi ...
- Java中static关键字的详解
static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...
- final、static、代码块、静态代码块、内部类、代码执行顺序
final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上 ...
- Linux下执行ls命令提示CMake Error错误
一.系统环境 Fedora10 二.出错情况 执行ls命令出现如下错误提示: CMake Error: The source directory "/etc/--color=auto&quo ...
- JavaEE中的MVC(一)Dao层彻底封装
最近Android工作实在难找,考虑是不是该转行做Java了,今天开始,花几天的事件,研究一下JavaEE各层优化. 首先是Dao层 增删改方法封装 使用PreparedStatement执行一条Sq ...
- Listview嵌套Listview
今天做项目,打算模仿淘宝的订单管理,需要Listview嵌套Listview,都是两个控件都是沿着一个方向滑动的,嵌套在一起不幸福,以下是解决方案,打个笔记,以后估计还得用: 其中onMeasure函 ...
- ACM个人零散知识点整理
ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...
- 玲珑学院-ACM比赛1014 - Absolute Defeat
1014 - Absolute Defeat Time Limit:2s Memory Limit:64MByte Submissions:257Solved:73 DESCRIPTION Eric ...
- php中session 入库的实现
ini_set("session.save_handler","user");//session.gc_probability = 1 分子ini_set(&q ...
- Android开发之漫漫长途 ⅥI——Android消息机制(Looper Handler MessageQueue Message)
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...