命名空间:microsoft.graph
重要
Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
添加新 的电话身份验证方法。 用户只能有一部在 phoneType 属性中捕获的每种类型的电话。 这意味着,例如,将手机添加到 mobile 具有预先存在的 mobile 手机的用户将失败。 此外,在添加alternateMobile手机之前,用户必须始终拥有mobile手机。
添加电话号码可在Azure多重身份验证 (MFA) 和自助密码重置 (SSPR) (如果已启用)中使用。
此外,如果策略允许用户使用短信登录,并且添加了一个 mobile 号码,则系统会尝试注册该号码以便在该系统中使用。
此 API 可用于以下国家级云部署。
| 全局服务 |
美国政府 L4 |
美国政府 L5 (DOD) |
由世纪互联运营的中国 |
| ✅ |
✅ |
✅ |
✅ |
权限
为此 API 选择标记为最低特权的权限。
只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
| 权限类型 |
最低特权权限 |
更高特权权限 |
| 委派(工作或学校帐户) |
UserAuthMethod-Phone.ReadWrite |
UserAuthMethod-Phone.ReadWrite.All、UserAuthenticationMethod.ReadWrite、UserAuthenticationMethod.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
不支持。 |
| 应用程序 |
UserAuthenticationMethod.ReadWrite.All |
UserAuthMethod-Phone.ReadWrite.All |
HTTP 请求
将电话身份验证方法添加到其他用户的帐户。 用户无法将手机身份验证方法添加到自己的帐户。
POST /users/{id | userPrincipalName}/authentication/phoneMethods
| 名称 |
说明 |
| Authorization |
持有者 {token}。 必填。 详细了解 身份验证和授权。 |
| Content-Type |
application/json. 必需。 |
请求正文
在请求正文中,提供 phoneAuthenticationMethod 对象的 JSON 表示形式。 JSON 必须包括 phoneNumber 和 phoneType,但不能 smsSignInState (只读) 。
| 属性 |
类型 |
说明 |
| phoneNumber |
String |
要发短信或呼叫进行身份验证的电话号码。 电话号码使用格式“+<国家/地区代码><号码>x<分机>”,分机可选。 例如,+1 5555551234或 +1 555551234x123 有效。 如果数字与所需格式不匹配,则创建/更新时会拒绝这些数字。 |
| phoneType |
String |
可能的值为: mobile、 alternateMobile和 office。 |
响应
如果成功,此方法在响应正文中返回响应 201 Created 代码和新的 phoneAuthenticationMethod 对象。
示例
请求
以下示例显示了一个请求。
POST https://graph.microsoft.com/beta/users/kim@contoso.com/authentication/phoneMethods
Content-type: application/json
{
"phoneNumber": "+1 2065555555",
"phoneType": "mobile"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new PhoneAuthenticationMethod
{
PhoneNumber = "+1 2065555555",
PhoneType = AuthenticationPhoneType.Mobile,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].Authentication.PhoneMethods.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewPhoneAuthenticationMethod()
phoneNumber := "+1 2065555555"
requestBody.SetPhoneNumber(&phoneNumber)
phoneType := graphmodels.MOBILE_AUTHENTICATIONPHONETYPE
requestBody.SetPhoneType(&phoneType)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
phoneMethods, err := graphClient.Users().ByUserId("user-id").Authentication().PhoneMethods().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
PhoneAuthenticationMethod phoneAuthenticationMethod = new PhoneAuthenticationMethod();
phoneAuthenticationMethod.setPhoneNumber("+1 2065555555");
phoneAuthenticationMethod.setPhoneType(AuthenticationPhoneType.Mobile);
PhoneAuthenticationMethod result = graphClient.users().byUserId("{user-id}").authentication().phoneMethods().post(phoneAuthenticationMethod);
const options = {
authProvider,
};
const client = Client.init(options);
const phoneAuthenticationMethod = {
phoneNumber: '+1 2065555555',
phoneType: 'mobile'
};
await client.api('/users/kim@contoso.com/authentication/phoneMethods')
.version('beta')
.post(phoneAuthenticationMethod);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\PhoneAuthenticationMethod;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationPhoneType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new PhoneAuthenticationMethod();
$requestBody->setPhoneNumber('+1 2065555555');
$requestBody->setPhoneType(new AuthenticationPhoneType('mobile'));
$result = $graphServiceClient->users()->byUserId('user-id')->authentication()->phoneMethods()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
phoneNumber = "+1 2065555555"
phoneType = "mobile"
}
New-MgBetaUserAuthenticationPhoneMethod -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.phone_authentication_method import PhoneAuthenticationMethod
from msgraph_beta.generated.models.authentication_phone_type import AuthenticationPhoneType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = PhoneAuthenticationMethod(
phone_number = "+1 2065555555",
phone_type = AuthenticationPhoneType.Mobile,
)
result = await graph_client.users.by_user_id('user-id').authentication.phone_methods.post(request_body)
响应
以下示例显示了相应的响应。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-type: application/json
{
"phoneNumber": "+1 2065555555",
"phoneType": "phoneType-value",
"smsSignInState": "ready",
"id": "3179e48a-750b-4051-897c-87b9720928f7"
}