【问题标题】:check MFA is enabled for a user using rest api检查 MFA 是否为使用 rest api 的用户启用
【发布时间】:2020-11-02 19:12:07
【问题描述】:

如何使用 REST API loginWithServicePrincipalSecret 检查是否为 AD 用户启用了 MFA 有没有人可以帮助我做到这一点....我想像这样使用 node sdk 来做到这一点

require("isomorphic-fetch");
const { UserAgentApplication } = require("msal");
const { ImplicitMSALAuthenticationProvider } = require("@microsoft/microsoft-graph-client/lib/src/ImplicitMSALAuthenticationProvider");
const { MSALAuthenticationProviderOptions } = require("@microsoft/microsoft-graph-client/lib/src/MSALAuthenticationProviderOptions");

const msalConfig = {
  auth: {
    clientId: "bec52b71-dc94-4577-9f8d-b8536ed0e73d", // Client Id of the registered application
  },
};
const graphScopes = ["user.read", "mail.send"]; // An array of graph scopes

const msalApplication = new UserAgentApplication(msalConfig);
const Options = new MSALAuthenticationProviderOptions(graphScopes);

const authProvider = new ImplicitMSALAuthenticationProvider(
  msalApplication,
  Options
);

const options = {
  authProvider,
};
const Client = require("@microsoft/microsoft-graph-client");
const client = Client.init(options);
async function test() {
  try {
    let res = await client
      .api("/reports/credentialUserRegistrationDetails")
      .version("beta")
      .get();
    console.log("res: ", res);
  } catch (error) {
    throw error;
  }
}
test();

【问题讨论】:

    标签: node.js azure azure-active-directory rest


    【解决方案1】:

    MS Graph API 可以做到这一点,

    要获取注册MFA和未注册用户的信息,我们可以使用credentialUserRegistrationDetails中的isMfaRegistered属性。

    credentialUserRegistrationDetails帮我们获取详细信息 使用自助密码重置和多因素身份验证 (MFA) 适用于所有注册用户。详细信息包括用户信息, 注册状态,以及使用的身份验证方法。 这可以通过 MS Graph 以编程方式实现,您将在其中获得 JSON 报告,可以插入到其他报告中,也可以以编程方式本身表示

    示例:

    GET https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails
    

    样本输出:

    {
                "id": "****************************",
                "userPrincipalName": "NKS@nishantsingh.live",
                "userDisplayName": "Nishant Singh",
                "isRegistered": false,
                "isEnabled": true,
                "isCapable": false,
                "isMfaRegistered": true,
                "authMethods": [
                    "mobilePhone"
                ]
            }
    

    Node JS 的示例代码,

    const options = {
        authProvider,
    };
    
    const client = Client.init(options);
    
    let res = await client.api('/reports/credentialUserRegistrationDetails')
        .version('beta')
        .get();
    

    要实现您的 NodeJS 代码,请阅读MS Documentation 中的分步指南

    【讨论】:

    • Hari Krishna--MSFT 感谢您的回复...你能指导我在 authProvider const options = { authProvider, }; 中应该传递什么吗?我真的不理解文档,这很困难。
    • 嗨@KainatNaz,为了使用MS Graph,我们需要由身份验证提供者提供的访问令牌。身份验证提供程序使用 Microsoft 身份验证库实现获取令牌所需的代码。请按照我分享的分步教程进行操作。它包含您要求所需的所有步骤。
    • 谢谢,@Hari Krishna-- MSFT 身份
    • 我正在执行此代码以获取 credentialUserRegistrationDetails 但我收到此 ReferenceError: window is not defined**
    • 嗨 @Hari Krishna--这里的 MSFT 身份是 error 请检查我的代码我做对了吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多