下面会用Powershell Azure AD实现创建一个自定义的App,其中包括Micrsoft Graph Read all groups权限添加,以及certificate证书验证上传证书的操作

1.获得自己自定义的证书的内容

#$certificatePath是自己证书的绝对路径
$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$certificate.Import($certificatePath)
$certBinaries = $certificate.GetRawCertData()
$certHash = $certificate.GetCertHash();
$CertBase64 = [System.Convert]::ToBase64String($certBinaries)
$CustomKeyIdentifier=[System.Convert]::ToBase64String($certHash)

2.连接Azure AD,会弹出微软的用户输入窗口,输入有相应权限的用户

#$$TenantRegion是自己Tenant的区域,也可以输入$azureAd=Connect-AzureAD,默认是Global
$azureAd=Connect-AzureAD -AzureEnvironmentName $TenantRegion

3.建好Micrsoft Graph Read all groups权限的信息

$requiredAccess = New-Object 'System.Collections.Generic.List`1[Microsoft.Open.AzureAD.Model.RequiredResourceAccess]'
#oliver test start#region Graph$graphApiAccess = New-Object 'Microsoft.Open.AzureAD.Model.RequiredResourceAccess'$graphApiAccess.ResourceAppId = '00000003-0000-0000-c000-000000000000'$graphApiAccess.ResourceAccess = New-Object 'System.Collections.Generic.List`1[Microsoft.Open.AzureAD.Model.ResourceAccess]'            #region Read all groups$GraphReadAllGroups=New-Object 'Microsoft.Open.AzureAD.Model.ResourceAccess'$GraphReadAllGroups.Id='5b567255-7703-4780-807c-7be8301ae99b'#role代表着application,scope代表着delegate$GraphReadAllGroups.Type='Role'#endregion                                 $graphApiAccess.ResourceAccess.Add($GraphReadAllGroups)                      #endregion

其中Microsoft Graph以及包含的权限具体信息的获取可以在https://github.com/mjisaak/azure-active-directory获得

4.判断App是否存在根据name,如果存在就更新url,输入命令

#输入自定义的名字
$AppName='OliverTestApp'
$existApp = Get-AzureADApplication -Filter "DisplayName eq '$AppName'"
if($existApp -ne $null)
{//更新app的replyurl
}

5.更新replyurl和对应需要的Micrsoft Graph Read all groups权限

#自定义你的replyurl
$ReplyUrl='自定义你的replyurl'$currentReplyUrls=$existApp[0].ReplyUrls
$urlExist=$false;
foreach($tempExistUrl in $currentReplyUrls)
{if($tempExistUrl.ToLower() -eq $ReplyUrl.ToLower()){$urlExist=$true;}
}
if($urlExist)
{Set-AzureADApplication -RequiredResourceAccess $requiredAccess -ObjectId $existApp[0].ObjectId
}
else
{$currentReplyUrls.Add($ReplyUrl)Set-AzureADApplication -RequiredResourceAccess $requiredAccess -ReplyUrls $currentReplyUrls -ObjectId $existApp[0].ObjectId
}                 

6.上传App证书,并且设置过期时间为一年

$EndTime=[System.DateTime]::Now.AddYears(1)
$tempKeyCreddential=New-AzureADApplicationKeyCredential -ObjectId $existApp[0].ObjectId -CustomKeyIdentifier $CustomKeyIdentifier -Type AsymmetricX509Cert -EndDate $EndTime -Usage Verify -Value $CertBase64  

7.如果App不存在就创建新的,并且传入replyurl,Micrsoft Graph Read all groups权限和证书

$application = New-AzureADApplication -DisplayName $AppName -ReplyUrls $replyUrlsForApp -RequiredResourceAccess $requiredAccess
$currentAppId = $application.AppId
$clientServicePrincipal = New-AzureADServicePrincipal -AppId $currentAppId
$tempKeyCreddential=New-AzureADApplicationKeyCredential -ObjectId $application.ObjectId -CustomKeyIdentifier $CustomKeyIdentifier -Type AsymmetricX509Cert -EndDate $certificate.NotAfter -StartDate $certificate.NotBefore -Usage Verify -Value $CertBase64

8.至此就创建成功,可以去azure portal上面查看自己创建的App(注意这里App还没有授权,图片中是后面Powershell脚本实现自动授权,不用用户点击登录授权)

Azure Active Directory Powershell命令创建一个application以及App需要的权限相关推荐

  1. Blazor 应用如何使用 Azure Active Directory 认证登录

    点击上方蓝字 / 关注"汪宇杰博客" 原文:Azure Tips and Tricks 翻译:汪宇杰 使用 Azure Active Directory 保护您的应用程序 您可以使 ...

  2. Azure Active Directory B2C-(1) 基本概念及创建并体验

    本文将介绍如下内容: 了解Azure Active Directory B2C概念: 在Azure 门户创建 Azure Active Directory B2C: 在AAD B2C租户中添加应用程序 ...

  3. Azure Active Directory Connect深度解析

    AADC(Azure Active Directory Connect),这个是微软开发的第四代同步身份同步工具了,从最早的Directory Synchronization 一直到现在. 中小型的企 ...

  4. 基于事件驱动架构构建微服务第19部分:使用 SignalR 和 Azure Active Directory 构建和保护实时通信...

    原文链接:https://logcorner.com/building-micro-services-through-event-driven-architecture-part19-building ...

  5. azure 使用_如何使用Cloud Shell自动化Azure Active Directory(AAD)任务

    azure 使用 介绍 (Introduction) In the article How to create an Azure SQL Database using the Cloud Shell, ...

  6. azure云数据库_使用Azure Active Directory和Azure SQL数据库

    azure云数据库 介绍 (Introduction) By default, when someone creates an Azure SQL Server, an Administrator w ...

  7. SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理——深入的话需要去折腾Azure Active Directory...

    SRV记录 SRV记录 什么情况下会用到SRV记录? [SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理] SRV记录的添加方式 A.主机记录处格式为:服务的名字.协议的类型 例如 ...

  8. 基于事件驱动架构构建微服务第16部分:Azure Active Directory B2C

    原文链接: https://logcorner.com/building-micro-services-through-event-driven-architecture-part16-azure-a ...

  9. Active Directory PowerShell模块收集AD信息

    0x00 前言简介 Microsoft为Windows Server 2008 R2(以及更高版本)提供了多个Active Directory PowerShell cmdlet,这大大简化了以前需要 ...

最新文章

  1. MQTT Qos类型解释
  2. 记windows平台使用vscode 搭建linux c++开发环境
  3. C++知识点5——迭代器简述
  4. 45个实用的JavaScript黑科技
  5. Tomcat5+Mssql server 2000数据库连接池配置
  6. mac mysql not found_mac下mysql提示command not found解决
  7. OpecCV颜色分割
  8. 【C语言】 删除一个字符串中重复的字符
  9. Mysql之子父级查询
  10. package.json详解
  11. 荷兰国旗算法设计C语言,2.7 荷兰国旗
  12. Docker环境安装
  13. 【深度好文】二维图像傅里叶变换 YYDS
  14. Spring框架爆RCE 0day漏洞的临时解决方案
  15. 详解Linux运维工程师必备技能
  16. 京东数据分析软件 | 如何获取京东平台的“增长榜单”
  17. 我在工作群和ChatGPT聊了会天,找到了升职加薪的新思路
  18. 自学编程,痛并快乐着
  19. 四信LoRa模组F8L10D率先通过CLAA COMPATIBLE认证
  20. 亚马逊第3条规定怎么申诉?亚马逊违反商品政策申诉

热门文章

  1. NJU 2021 计算机拔尖(数学)测试 解题报告
  2. 升级WIFI6路由器,笔记本电脑找不到WIFI
  3. CentOS7下安装yara
  4. python经典类新式类_Python的新式类和经典类
  5. 身份证阅读器(新中新)写入受保护内存问题,已解决
  6. python平方数_【python】升序查找100内最大平方数的方法
  7. xshell 使用pem文件登录阿里云等远程服务器
  8. MyBatis执行简单的CRUD
  9. 用计算机怎样提交作业,学而思培优如何提交作业 学而思培优在线操作说明之五步法...
  10. 转:浅析镜头分辨率和MTF测试