Làm thế nào để có được Id người thuê tài khoản azure?


201

Câu hỏi của tôi là: Có thể lấy id người thuê thư mục hoạt động azure mà không cần sử dụng lệnh powershell không?

Tôi đã tìm thấy hai blog này và với sự giúp đỡ này, tôi đã có thể nhận được ID người thuê và ID đăng ký từ powershell. Đây có phải là cách duy nhất để lấy người thuê nhà?

Nhận ID đối tượng thuê Windows Directory Active Directory trong Windows PowerShell

Hỗ trợ xác thực Windows Azure AD cho PowerShell

Cảm ơn


Bạn đang tìm kiếm một câu trả lời trong một ngôn ngữ lập trình khác hoặc bạn đang yêu cầu một phản ứng không lập trình? Nếu trước đây bạn cần phải cụ thể hơn. Nếu thang bạn đang hỏi trong diễn đàn sai
Matt

4
Tìm thấy trang web này thực hiện công việc: whatismytenantid.com
Jean-François Deschênes

2
Cảm giác đó khi 150 nghìn người + bị MS làm phiền vì không thể giao tiếp rõ ràng với người thuê nhà
eddyP23

Câu trả lời:


264

Thời gian thay đổi mọi thứ. Tôi đã tìm cách làm tương tự gần đây và đã đưa ra điều này:

Ghi chú

ngày 18/12/2017

Như được chỉ định bởi Shadowbq, DirectoryId và TenantId đều tương đương với GUID đại diện cho Đối tượng thuê ActiveDirectory. Tùy thuộc vào ngữ cảnh, một trong hai thuật ngữ có thể được sử dụng bởi tài liệu và sản phẩm của Microsoft, điều này có thể gây nhầm lẫn.

Giả định

  • Bạn có quyền truy cập vào Cổng thông tin Azure

Giải pháp

ID đối tượng thuê được gắn với ActiveDirectoy trong Azure

  • Điều hướng đến Bảng điều khiển
  • Điều hướng đến ActiveDirectory
  • Điều hướng đến Quản lý / Thuộc tính
  • Sao chép "ID thư mục"

ID đối tượng thuê Azure ActiveDirectory

Có tôi đã sử dụng sơn, đừng phán xét tôi.


6
Tôi không chắc về phần lợi nhuận, nhưng phần còn lại làm việc cho tôi! ☺
HaveSpacesuit

39
"ID đối tượng thuê" "ID thư mục".
Shadowbq

32
Microsoft chắc chắn muốn giữ mọi người trên đầu bằng cách đặt tên mọi thứ 3 lần.
BenM

1
"Điều hướng đến ActiveDirectory" nghĩa là gì?
thang

1
@thang: ActiveDirectory được ghim vào cổng Azure theo mặc định, nếu bạn không thấy nó, bạn có thể đến đó bằng cách nhập "Azure Active Directory" vào thanh tìm kiếm ở đầu cổng và chọn mục nhập "Azure Active Directory" trong "Dịch vụ"
Kevin R.

103

Truy cập https://login.windows.net/YOURDIRECTORYNAME.onmicrosoft.com/.well- Unknown / openid-configuration và bạn sẽ thấy một loạt các URL chứa ID đối tượng thuê của bạn.


3
Những id đó là id đăng ký - không phải id thuê. Khi một tài khoản có nhiều đăng ký, có nhiều thư mục và các mục này tương đương tenantId đến directoryId tại được nêu trong câu trả lời của @KevinR dưới đây
Catch22

5
Bạn có thể có nhiều đăng ký được liên kết với một người thuê / thư mục. Sử dụng phương pháp trên sẽ hiển thị cho bạn ID người thuê, không phải ID đăng ký. Bạn có thể xác nhận bằng cách so sánh GUID từ phương thức này với ID thư mục trong cổng thông tin - chúng sẽ giống nhau.
BenV

3
siêu hữu ích trong trường hợp bạn không có quyền truy cập vào lưỡi thư mục hoạt động
Torben Knerr

2
FYI: bạn có thể chuyển đổi một thuê bao Id để người thuê nhà Id bằng cách điều hướng đến management.azure.com/subscriptions/... (di chuột để xem URL đầy đủ) - và kiểm tra việc "WWW-Authenticate" tiêu đề đó trở lại (bạn sẽ nhận được một 401, nhưng tiêu đề đó chứa một URL có Id đối tượng thuê trong đó). :-)
BrainSlugs83

Trong URL của azure (như cổng thông tin), bạn thường có thể sử dụng YOUDIRECTORYNAME.onmicrosoft.com và ID người thuê thay thế cho nhau - vì vậy nếu bạn biết giám đốc điều hành, bạn có thể tham chiếu đối tượng thuê.
ndrix

57

Nhóm của tôi thực sự phát ốm khi cố gắng tìm ID người thuê cho các dự án O365 và Azure của chúng tôi. Các nhà phát triển, nhóm hỗ trợ, nhóm bán hàng, mọi người đều cần nó vào một lúc nào đó và không bao giờ nhớ làm thế nào để làm điều đó.

Vì vậy, chúng tôi đã xây dựng trang web nhỏ này theo cùng hướng với whatismyip.com. Hi vọng bạn tìm được thứ hữu dụng!

https://www.whatismytenantid.com


48

Trong Azure CLI (Tôi sử dụng GNU / Linux):

$ azure login  # add "-e AzureChinaCloud" if you're using Azure China

Điều này sẽ yêu cầu bạn đăng nhập qua https://aka.ms/devicelogin hoặc https://aka.ms/deviceloginchina

$ azure account show
info:    Executing command account show
data:    Name                        : BizSpark Plus
data:    ID                          : aZZZZZZZ-YYYY-HHHH-GGGG-abcdef569123
data:    State                       : Enabled
data:    Tenant ID                   : 0XXXXXXX-YYYY-HHHH-GGGG-123456789123
data:    Is Default                  : true
data:    Environment                 : AzureCloud
data:    Has Certificate             : No
data:    Has Access Token            : Yes
data:    User name                   : nico@XXXXXXX.onmicrosoft.com
data:    
info:    account show command OK

hoặc đơn giản:

azure account show --json | jq -r '.[0].tenantId'

hoặc az mới:

az account show --subscription a... | jq -r '.tenantId'
az account list | jq -r '.[].tenantId'

Tôi hy vọng nó sẽ giúp


1
thực ra, đó là clure azure .. nhưng +1 cho bất kỳ cli nào.
pms1969

Điều này cũng sẽ làm việc với azCLI mới , cảm ơn!
rsmith54

39

Id đối tượng thuê cũng có trong URL của bảng điều khiển quản lý khi bạn duyệt đến phiên bản Active Directory đã cho, ví dụ:

https://manage.windowsazure.com/<morestuffhere>/ActiveDirectoryExtension/Directory/BD848865-BE84-4134-91C6-B415927B3AB1

Azure Mgmt Console Active Directory


@Mjh, tôi nghe bạn. Tôi ngạc nhiên khi bạn là người đầu tiên nhận xét về đề xuất klugey của tôi. Có lẽ rõ ràng với phần còn lại của thế giới rằng người ta sẽ kéo id người thuê từ một uri.
Brett

Không rõ ràng với tôi. Tôi dự kiến ​​nó sẽ được hiển thị trong UI ở đâu đó. Phải săn lùng nó trong Uri hoặc sử dụng powershell để có được nó sau khi bạn xác thực là điều thực sự kỳ lạ. Chúng tôi muốn giới hạn một số tennant nhất định trong ứng dụng của chúng tôi vì vậy chúng tôi cần yêu cầu ID từ chủ sở hữu tennant. Phương pháp này sẽ gây nhầm lẫn rất nhiều trong số họ.
PilotBob

3
Không chỉ là sự điên rồ, nó còn chính thức = / "Id đối tượng thuê đối với người thuê Office 365 của bạn được hiển thị như một phần của URL" xem: support.office.com/en-us/article/
Bigginn 29/2/2016

34

Chỉ cần thêm một phương thức mới vào một câu hỏi cũ (nhưng vẫn có liên quan). Trong cổng thông tin mới, nhấp vào biểu tượng trợ giúp từ bất kỳ màn hình nào và chọn ' Hiển thị chẩn đoán ' sẽ hiển thị cho bạn một tài liệu JSON chứa tất cả thông tin về người thuê của bạn bao gồm TenantId, Tên người thuê và nhiều thông tin hữu ích hơn nhiều

nhập mô tả hình ảnh ở đây


22

Câu trả lời này đã được cung cấp trên trang web của Microsoft, được cập nhật lần cuối vào ngày 21/03/2018:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal

Nói tóm lại, đây là những ảnh chụp màn hình từ hướng dẫn:

  1. Chọn Azure Active Directory.

Azure Active Directory

  1. Để lấy ID đối tượng thuê, chọn Thuộc tính cho đối tượng thuê Azure AD của bạn.

Chọn thuộc tính

  1. Sao chép ID thư mục. Giá trị này là ID người thuê nhà của bạn.

Sao chép ID thư mục, đây là ID người thuê.

Hi vọng điêu nay co ich.


12

Một cách khác để có được nó từ đăng ký ứng dụng

Azure Active Directory-> App registrations-> nhấp vào ứng dụng và nó sẽ hiển thị tenant IDnhư thế này

nhập mô tả hình ảnh ở đây


1
Tôi thấy không có ID người thuê dưới hầu hết các mục trong phương vị.
cuộn

12

Qua PowerShell ẩn danh:

(Invoke-WebRequest https://login.windows.net/YOURDIRECTORYNAME.onmicrosoft.com/.well-known/openid-configuration|ConvertFrom-Json).token_endpoint.Split('/')[3]

1
Anh ta đang tìm kiếm một cách để làm điều đó mà không cần sử dụng các lệnh tích hợp - may mắn thay, điều này thể hiện cách thực hiện bằng bất kỳ ngôn ngữ nào ... tiện lợi.
BrainSlugs83

5

Bạn có thể chạy một cuộc gọi curl đơn giản để có được id đối tượng thuê bao của một thuê bao azure mà không cần bất kỳ xác thực nào.

thực hiện một cuộc gọi curl đến:

https://management.azure.com/subscriptions/{subscription-id}?api-version=2015-01-01

Yêu cầu không thành công nhưng bạn sẽ có thể lấy id đối tượng thuê từ tiêu đề phản hồi. Id đối tượng thuê có mặt trong dòng theo sau "WWW-xác thực: Bearer ủy quyền_uri =" https://login.windows.net/ "

bạn có thể sử dụng curl -v để hiển thị tiêu đề phản hồi.


5

Kể từ bây giờ (06/07/2018), một cách tiếp cận dễ dàng sẽ chạy tài khoản az hiển thị trong Azure Cloud Shell (yêu cầu Tài khoản lưu trữ) trong Cổng thông tin Azure .

--- Chỉ huy ---

az account show

--- Đầu ra lệnh ---

{
  "environmentName": "AzureCloud",
  "id": "{Subscription Id (GUID)}",
  "isDefault": true,
  "name": "{Subscription Name}",
  "state": "Enabled",
  "tenantId": "{Tenant Id (GUID)}",
  "user": {
    "cloudShellID": true,
    "name": "{User email}",
    "type": "user"
  }
}

Tìm thêm chi tiết về Azure Cloud Shell tại https://docs.microsoft.com/en-us/azure/cloud-shell/overview .


4

Sử dụng Azure CLI

az account get-access-token --query tenant --output tsv

1
Đây chính xác là những gì người hỏi không yêu cầu
Jim Aho

3

Trong PowerShell:

Add-AzureRmAccount #if not already logged in 
Get-AzureRmSubscription -SubscriptionName <SubscriptionName> | Select-Object -Property TenantId

3

Nếu bạn đã cài đặt Azure CLI 2.0 trong máy của mình, bạn sẽ có thể nhận được danh sách đăng ký mà bạn thuộc về với lệnh sau,

az login

nếu bạn muốn xem như một đầu ra bảng, bạn chỉ có thể sử dụng

az account get-access-token --query tenant --output tsv

hoặc bạn có thể sử dụng API nghỉ ngơi

https://docs.microsoft.com/en-us/rest/api/resource/tenants/list


2

Nếu bạn đã thiết lập Azure CLI, bạn có thể chạy lệnh bên dưới,

az account list

hoặc tìm nó tại ~/.azure/credentials


1

Từ Java:

public static String GetSubscriptionTenantId (String subscriptionId) throws ClientProtocolException, IOException
{
    String tenantId = null;
    String url = "https://management.azure.com/subscriptions/" + subscriptionId + "?api-version=2016-01-01";

    HttpClient client = HttpClientBuilder.create().build();
    HttpGet request = new HttpGet(url);
    HttpResponse response = client.execute(request);

    Header[] headers = response.getAllHeaders();
    for (Header header : headers)
    {
        if (header.getName().equals("WWW-Authenticate"))
        {
            // split by '"' to get the URL, split the URL by '/' to get the ID
            tenantId = header.getValue().split("\"")[1].split("/")[3];
        }
    }

    return tenantId;
}

1

Theo Microsoft:

Tìm tenantID của bạn : TenantId của bạn có thể được phát hiện bằng cách mở tài liệu metadata.xml sau đây: https://login.microsoft.com/GraphDir1.onmicrosoft.com/FedutionsMetadata/2007-06/FedutionsMetadata.xml - thay thế "graphDir1.onMicrosoft. com ", với giá trị tên miền của người thuê nhà của bạn (bất kỳ tên miền nào thuộc sở hữu của người thuê sẽ hoạt động). TenantId là một hướng dẫn, là một phần của URL sts, được trả về trong url sts của nút xml đầu tiên ("EntityDescriptor"): ví dụ: " https://sts.windows.net/ ".

Tài liệu tham khảo:

https://azure.microsoft.com/en-us/resource/samples/active-directory-dotnet-graphapi-web/


0

Bạn cũng có thể lấy id người thuê, trên thực tế tất cả các chi tiết đăng ký bằng cách đăng nhập vào url resource.azure.com


0

Một cách đơn giản để có được người thuê là

Connect-MsolService -cred $ LiveCred #sign cho người thuê

(Get-MSOLCompanyIn information) .objectid.guid #get tenantID


0

Đối với AAD-B2C, nó khá đơn giản. Từ Cổng thông tin Azure có thư mục B2C được liên kết, hãy chuyển đến thư mục B2C của bạn (Tôi đã thêm "Azure AD B2C" vào menu bên trái của cổng thông tin của tôi). Trong thư mục B2C, nhấp vào mục trình đơn thư mục "Luồng người dùng (chính sách). Trong ngăn chính sách, nhấp vào một trong các chính sách bạn đã thêm trước đó để chọn nó. Nó sẽ mở một ngăn cho chính sách. Nhấp vào" Thuộc tính ". khung là một phần, "Cài đặt tương thích mã thông báo" có thuộc tính "Nhà phát hành". GUID đối tượng thuê AAD-B2C của bạn được chứa trong URL.


-2
xxx@Azure:~$ az ad sp create-for-rbac
Retrying role assignment creation: 1/36
{
  "appId": "401143c2-95ef-4792-9900-23e07f7801e7",
  "displayName": "azure-cli-2018-07-10-20-31-57",
  "name": "http://azure-cli-2018-07-10-20-31-57",
  "password": "a0471d14-9300-4177-ab08-5c45adb3476b",
  "tenant": "e569f29e-b008-4cea-b6f0-48fa8532d64a"
}

Nó sẽ tạo ra một sp mới .
Robinho
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.