1. 新建应用程序
登录Azure门户,进入左侧菜单“企业应用程序--所有应用程序”,点“新建应用程序”, 继续点“创建你自己的应用程序”,如下图选择和录入名称:
填好应用的名称、想要如何处理应用程序 必须选择第三个“继承未在库中找到的任何其他应用程序(非库)”,之后点“创建”按钮;
2. 单一登录设置
继续1中步骤,进入左侧菜单“单一登录”,选择单一登录方法为“SAML”,如下图:
继续,编辑“基本SAML配置”,如下图:
其中:
** 标识符(实体ID)**,从进入左侧菜单“应用注册”,双击进入该应用,进入左侧菜单“公开API”里复制,如下图:
回执URL,就是你自己web程序中用来处理响应数据的页面;
3、将用户增加到该应用中,此处不赘述;
4、idp--->sp模式测试:
4.1 操作方式如下图:
4.2 回执URL程序的处理:
如下处理仅仅解析xml,不对数据进行验签等安全方面的处理;
点击查看代码
` protected void Page_Load(object sender, EventArgs e)
{
try
{
string key = "SAMLResponse";
string enCodeVal = Request.Form.GetValues(key)[0];
string samlResponseXml = Encoding.UTF8.GetString(Convert.FromBase64String(enCodeVal));
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(samlResponseXml);
XmlNodeList nodeList = xmlDoc.ChildNodes;//Issuer节点
XmlNode nodeIssuer = nodeList[0];
XmlNodeList nodeListIssuer = nodeIssuer.ChildNodes;
string loginNo = "";
//node.SelectSingleNode("/Assertion/Subject/NameID").InnerXml;
foreach (XmlNode node in nodeListIssuer)
{
if (node.Name == "Assertion")
{
XmlNodeList nodeListSubject = node.ChildNodes;
foreach (XmlNode nodeSub in nodeListSubject)
{
if (nodeSub.Name == "Subject")
{
loginNo = nodeSub.InnerText;
break;
}
}
break;
}
}
Response.Write("SP端收到的用户名为:" + loginNo);
}
catch (Exception ex)
{
Response.Write("异常:" + ex.Message);
}
}`
5、sp--->idp 模式测试:
由我网站端发起:
5.1. 请求的字符:
<samlp:AuthnRequest
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="{0}"
Version="2.0" IssueInstant="2013-03-18T03:28:54.1839884Z"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" >
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">{1}</Issuer>
</samlp:AuthnRequest>
其中:
ID,Azure AD 使用此属性来填充返回的响应的 InResponseTo 属性。 ID 的开头不能是数字,因此常见的策略是在 GUID 的字符串表示形式前面加上类似于“ID”的字符串。 例如,id6c1c178c166d486687be4aaf5e482730 是有效的 ID。
Issuer,必须与 Azure AD 中云服务的一个 ServicePrincipalNames 完全匹配。 通常,此参数设置为应用程序注册期间指定的应用 ID URI。参照2中实体ID;
重定向URL,从进入左侧菜单“应用注册”后,最上面的“终结点”中获取;
5.2. 重定向后:
重定向后,浏览器跳转到微软网站,按照提示输入用户名和密码,登陆后,会重定向到4中的回调Response.aspx页面中,此页面能解析到用户名NameID;
- Microsoft 程序 Azure SAML aspmicrosoft程序azure saml azure microsoft service app azure microsoft function runtime azure parameterbindingdata microsoft function microsoft azure ddos vm microsoft机器 笔记azure azure microsoft framework service microsoft pipelines azure agent azure microsoft function版本 开发者microsoft意味azure