You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含自断言模板的现有AAD自定义策略中添加Microsoft登录按钮

给selfAsserted模板添加Microsoft登录按钮的实操步骤

1. 定位模板中可添加按钮的区域

打开你的selfAsserted.html模板,找到用户名/密码表单的上方或下方区域,要是没有现成的社交登录容器,手动加一个:

<div class="social-login-box" id="msLoginContainer"></div>

2. 用B2C内置JS API生成登录按钮

在页面底部的<script>区块里,加这段代码来获取Microsoft登录的跳转链接并生成按钮:

window.addEventListener('load', function() {
  // 获取策略里配置的所有身份提供者
  var allProviders = window.SECURITY_IDENTITY_PROVIDERS;
  // 筛选出Microsoft提供者(名称要和你XML里配置的DisplayName一致)
  var msProvider = allProviders.find(p => p.name === 'Microsoft');
  
  if (msProvider) {
    // 创建按钮元素
    var msButton = document.createElement('button');
    msButton.className = 'social-btn ms-btn';
    msButton.innerText = '用Microsoft账号登录';
    // 点击跳转登录链接
    msButton.onclick = () => window.location.href = msProvider.loginUrl;
    // 把按钮加到容器里
    document.getElementById('msLoginContainer').appendChild(msButton);
  }
});

3. 给按钮加匹配模板的样式(可选)

在模板的<style>部分加样式,让按钮和现有页面风格统一:

.social-btn {
  width: 100%;
  padding: 10px;
  margin: 10px 0;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  cursor: pointer;
}

.ms-btn {
  background-color: #0078d4;
  color: #fff;
}

.ms-btn:hover {
  background-color: #005a9e;
}

4. 确认XML策略配置匹配

确保你XML策略里的Microsoft身份提供者配置,其DisplayName和JS里写的'Microsoft'一致,比如:

<ClaimsProvider>
  <Domain>live.com</Domain>
  <DisplayName>Microsoft</DisplayName>
  <TechnicalProfiles>
    <!-- 这里是你已配置好的Microsoft登录技术参数 -->
  </TechnicalProfiles>
</ClaimsProvider>

注意点

  • 别乱改模板里B2C自动渲染的核心代码,用自定义容器加按钮更稳妥
  • 测试前确认Microsoft身份提供者在租户里已配置生效,且策略里已包含该提供者
  • 如果模板本身有#social容器,可能B2C会自动渲染按钮,检查下是不是被CSS隐藏了,调整显示就行

内容的提问来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:58:20