MSAL kullanarak kullanıcılar için Microsoft Entra Id belirteçleri alma
Önemli
Bu makalede, Microsoft Kimlik Doğrulama Kitaplığı 'nı (MSAL) kullanarak Microsoft Entra Id belirteçlerinin el ile nasıl oluşturulacağı açıklanmaktadır.
Databricks, Azure Databricks kullanıcıları için Microsoft Entra ID belirteçlerini el ile oluşturmanızı önermez. Bunun nedeni, her Microsoft Entra Id belirtecinin kısa süreli olması ve genellikle bir saat içinde süresinin dolmasıdır. Bu süreden sonra, el ile yeni bir Microsoft Entra Id belirteci oluşturmanız gerekir. Bunun yerine, Databricks istemcisi birleşik kimlik doğrulama standardını uygulayan katılımcı araçlardan veya SDK'lardan birini kullanın. Bu araçlar ve SDK'lar, Azure CLI kimlik doğrulamasını kullanarak süresi dolan Microsoft Entra ID belirteçlerini sizin için otomatik olarak oluşturur ve değiştirir.
Azure Databricks tarafından yönetilen hizmet sorumluları doğrudan Azure Databricks içinde yönetilir. Microsoft Entra Id yönetilen hizmet sorumluları, ek izinler gerektiren Microsoft Entra ID'de yönetilir. Databricks, çoğu kullanım örneği için Azure Databricks yönetilen hizmet sorumlularını kullanmanızı önerir. Ancak Databricks, Azure Databricks ve diğer Azure kaynaklarıyla aynı anda kimlik doğrulaması yapmanız gereken durumlarda Microsoft Entra ID yönetilen hizmet sorumlularını kullanmanızı önerir.
Microsoft Entra ID yönetilen hizmet sorumlusu yerine Azure Databricks yönetilen hizmet sorumlusu oluşturmak için bkz . Hizmet sorumlularını yönetme.
Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL), Microsoft Entra ID erişim belirteçlerini programlı olarak almak için kullanabilirsiniz. Bu makalede, Python örnekleriyle birlikte MSAL kitaplığının temel kullanımı ve gerekli kullanıcı girişleri açıklanmaktadır.
Not
MSAL, Microsoft Entra ID Authentication Library 'nin (ADAL) yerini alır. Güvenlik düzeltmeleri dahil olmak üzere ADAL için tüm Microsoft desteği ve geliştirmesi 30 Haziran 2022'de sona erdi. Bkz . Uygulamaları Microsoft Kimlik Doğrulama Kitaplığı'na (MSAL) geçirme.
İpucu
Azure CLI'yı kullanmak daha az adım gerektirdiğinden, kullanıcılar için Microsoft Entra ID belirteçlerini almak için MSAL yerine Azure CLI kullanmayı deneyebilirsiniz. Bkz . Azure CLI kullanarak kullanıcılar için Microsoft Entra ID belirteçlerini alma.
Ayrıca Microsoft Entra Id içinde bir hizmet sorumlusu tanımlayabilir ve bir kullanıcı yerine hizmet sorumlusu için bir Microsoft Entra Id erişim belirteci alabilirsiniz. Bkz . Hizmet sorumluları için Microsoft Entra Id belirteçlerini alma.
Azure portalında uygulama yapılandırma
Azure portalında Microsoft Entra Id uç noktasına bir uygulama kaydedin. Alternatif olarak, zaten kayıtlı bir Microsoft Entra Id uygulamasını kullanabilirsiniz. Daha fazla bilgi için bkz . Azure portalını kullanarak uygulama kaydetme.
Azure Portal’ında oturum açın.
Not
Kullanılacak portal, Microsoft Entra ID uygulamanızın Azure genel bulutunda mı yoksa ulusal veya bağımsız bir bulutta mı çalıştığına bağlı olarak farklılık gösterir. Daha fazla bilgi için bkz . Ulusal bulutlar.
Birden çok kiracıya, aboneliğe veya dizine erişiminiz varsa, uygulamayı kaydetmek istediğiniz dizine geçmek için üst menüdeki Dizinler + abonelikler (filtreli dizin) simgesine tıklayın.
Microsoft Entra ID öğesini arayıp seçin.
Yönet'in içinde Yeni kayıt Uygulama kayıtları'i > seçin.
Ad alanına uygulama için bir ad girin.
Desteklenen hesap türleri bölümünde Yalnızca bu kuruluş dizinindeki hesaplar (Tek kiracı) öğesini seçin.
Yeniden Yönlendirme URI'si (isteğe bağlı) bölümünde Platform seçin için Genel istemci/yerel (mobil ve masaüstü) öğesini seçin ve bir yeniden yönlendirme URI'si girin. Aşağıdaki örnekte, yeniden yönlendirme URI değeri şeklindedir
http://localhost
.Kaydet’e tıklayın.
Uygulama sayfasının Genel Bakış sayfasının Temel Parçalar bölümünde aşağıdaki değerleri kopyalayın:
- Uygulama (istemci) kimliği
- Dizin (kiracı) kimliği
- Yeniden yönlendirme URI'leri bölümünde, bu yordamda daha önce girdiğiniz genel istemci yeniden yönlendirme URI'sini kullanır.
Kayıtlı uygulamanın gerekli izinlerine AzureDatabricks ekleyin. Bu adımı gerçekleştirmek için yönetici kullanıcı olmanız gerekir. Bu eylemi gerçekleştirirken izinlerle ilgili bir sorunla karşılaşırsanız yardım için yöneticinize başvurun.
Uygulama sayfasının Genel Bakış sayfasında, Başlarken sekmesinde API izinlerini görüntüle'ye tıklayın.
İzin ekle'ye tıklayın.
API izinlerini iste bölmesinde kuruluşumun kullandığı API'ler sekmesine tıklayın, AzureDatabricks'i arayın ve seçin.
user_impersonation onay kutusunu etkinleştirin ve ardından İzin ekle'ye tıklayın.
### için yönetici onayı ver'e ve ardından Evet'e tıklayın. Bu eylemi gerçekleştirmek için yönetici kullanıcı olmanız veya uygulamaya onay verme ayrıcalığına sahip olmanız gerekir. ### için yönetici onayı ver seçeneğini görmüyorsanız veya bu eylemi atlarsanız, onay sağlamak için uygulamayı ilk kez kullandığınızda Yetkilendirme kodu akışını (etkileşimli) kullanmanız gerekir. Bundan sonra Kullanıcı adı-parola akışı (programlı) yöntemini kullanabilirsiniz.
Uygulamaya başka kullanıcılar ekleyebilirsiniz. Daha fazla bilgi için bkz . Azure portalı yönergeleri için kurumsal uygulamaya kullanıcı hesabı atama veya PowerShell yönergeleri için Microsoft Entra ID'de (eski adı Azure Active Directory) bir uygulamaya kullanıcı ve grup atama. Kullanıcı gerekli izinler olmadan belirteç alamaz.
Microsoft Entra Id erişim belirteci alma
Microsoft Entra Id erişim belirtecini almak için şunları kullanabilirsiniz:
Aşağıdakiler durumunda Microsoft Entra Id erişim belirtecini almak için yetkilendirme kodu akışını (etkileşimli) kullanmanız gerekir:
- Microsoft Entra Id'de iki faktörlü kimlik doğrulaması etkinleştirilir.
- Federasyon kimlik doğrulaması Microsoft Entra Id'de etkinleştirilir.
- Uygulama kaydı sırasında kayıtlı uygulamaya onay verilmez.
Kullanıcı adı ve parolayla oturum açma yetkiniz varsa, Microsoft Entra ID erişim belirtecini almak için kullanıcı adı-parola akışını (programlı) kullanabilirsiniz.
Yetkilendirme kodu akışı (etkileşimli)
Yetkilendirme kodu akışını kullanarak Bir Microsoft Entra Id erişim belirteci almak için iki adım vardır.
- Bir tarayıcı penceresi başlatan ve Azure kullanıcı oturum açma bilgilerini isteyen bir yetkilendirme kodu isteyin. Kullanıcı başarıyla oturum açtığında yetkilendirme kodu döndürülür.
- Microsoft Entra Id erişim belirtecini almak için yetkilendirme kodunu kullanın. Kullandığınız yaklaşıma bağlı olarak, yenileme belirteci aynı anda döndürülebilir ve Microsoft Entra Id erişim belirtecini yenilemek için kullanılabilir.
Bu iki adımı tamamlamaya yönelik yaklaşımlardan biri, web tarayıcınızı kullanmak ve curl kullanmaktır. Bunu yapmak için, yetkilendirme kodunu almak için web tarayıcınızı, ardından yetkilendirme kodunu ve curl
Microsoft Entra Id erişim belirtecini almak için kullanırsınız. Bu yaklaşım yenileme belirteci sağlamaz.
Bir diğer yaklaşım da MSAL Python kitaplığını kullanmaktır. Bunu yapmak için, yetkilendirme kodunu almak için web tarayıcınızı kullanan ve ardından hem erişim hem de yenileme belirteci almak için yetkilendirme kodunu kullanan tek bir betik çalıştırırsınız.
Bu yaklaşımların her ikisi de Azure'da zaten oturum açtığınızı varsayar. Oturum açmadıysanız, web tarayıcınız bunu yapmanızı ister.
Web tarayıcısı ve curl kullanarak Microsoft Entra ID belirteçleri alma
Aşağıdaki bilgileri toplayın:
Parametre Açıklama Kiracı kimliği Azure portalında uygulama yapılandırma bölümünde Microsoft Entra Id'ye kayıtlı ilgili uygulamanın Dizin (kiracı) kimliği. Client ID Microsoft Entra Kimliği'nde kayıtlı ilgili uygulamanın Uygulama (istemci) kimliği. Yeniden yönlendirme URI'si Microsoft Entra Id'de kayıtlı ilgili uygulama için uygun Yeniden Yönlendirme URI'leri (örneğin, http://localhost
). Kimlik doğrulama yanıtları, yetkilendirme kodu dahil olmak üzere bu URI'ye gönderilir.Aşağıdaki URL'ye göz atmak için web tarayıcınızı kullanarak yetkilendirme kodunu alın. Aşağıdaki URL örneğindeki alanları uygun şekilde değiştirin. URL'nin tek satır olarak gönderilmesi gerektiğini unutmayın; satır sonları okunabilirlik için aşağıdaki URL'ye eklendi. Daha fazla bilgi için bkz . Yetkilendirme kodu isteme.
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id> &response_type=code &redirect_uri=<redirect-uri> &response_mode=query &scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default &state=<state>
Değiştirme:
<tenant-id>
ve kayıtlı uygulamanın kiracı kimliğiyle birlikte.<client-id>
ve kayıtlı uygulamanın istemci kimliğiyle birlikte.<redirect-uri>
kayıtlı uygulamanın yeniden yönlendirme URI'siyle. Bu URI URL ile kodlanmış (yüzde kodlanmış) biçimde olmalıdır. Örneğin,http://localhost
şeklindedirhttp%3A%2F%2Flocalhost
.<state>
rastgele bir sayı veya bazı kodlanmış bilgilerle. Bilgi alışverişinin bütünlüğünü denetlemeye yardımcı olmak için, bu durum değeri bu yordamın devamında döndürülen URL'deki değerle eşleşmelidir.
parametresinin değerini değiştirmeyin
scope
. Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) için program kimliği ile birlikte varsayılan kapsamı (/.default
URL olarak kodlanmış%2f.default
) temsil eder.Örneğin:
https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/authorize?client_id=12a34b56-789c-0d12-e3fa-b456789c0123 &response_type=code &redirect_uri=http%3A%2F%2Flocalhost &response_mode=query &scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default &state=12345
URL'yi web tarayıcınıza tek satır olarak yapıştırın ve istenirse Azure'da oturum açın.
Yetkilendirme kodu, döndürülen URL'deki
code
alandadır. Yetkilendirme kodunu güvenli bir konuma kaydedin. Ayrıca, alanın değerininstate
bu yordamda daha önce sağladığınız değerle eşleştiğinden emin olun.Döndürülen URL'nin tamamı şuna benzer olacaktır (tam
code
alan değeri kısalmak üzere0.ASkAIj...RxgFhSAA
buraya kısaltılmıştır):http://localhost/?code=0.ASkAIj...RxgFhSAA&state=12345&session_state=c44574d5-38ba-4f93-b2a3-a830db8e8cdf
Microsoft Entra ID erişim belirtecini almak için yetkilendirme kodunu ve birlikte
curl
kullanın.curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \ -d 'client_id=<client-id>' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'code=<authorization-code>' \ -d 'redirect_uri=<redirect-uri>' \ -d 'grant_type=authorization_code' \ -d 'state=<state>'
Değiştirme:
<tenant-id>
ve kayıtlı uygulamanın kiracı kimliğiyle birlikte.<client-id>
ve kayıtlı uygulamanın istemci kimliğiyle birlikte.<authorization-code>
yetkilendirme kodunuzla birlikte.<redirect-uri>
kayıtlı uygulamanın yeniden yönlendirme URI'siyle. Bu URI URL ile kodlanmış (yüzde-endoded) biçiminde olmalıdır. Örneğin,http://localhost
şeklindedirhttp%3A%2F%2Flocalhost
.<state>
rastgele bir sayı veya bazı kodlanmış bilgilerle. Bilgi alışverişinin bütünlüğünü denetlemeye yardımcı olmak için, bu durum değeri bu yordamın devamında yanıt yükündeki değerle eşleşmelidir.
parametresinin değerini değiştirmeyin
scope
. Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) için program kimliği ile birlikte varsayılan kapsamı (/.default
URL olarak kodlanmış%2f.default
) temsil eder.Örneğin:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/token \ -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'code=0.ASkAIj...RxgFhSAA' \ -d 'redirect_uri=http%3A%2F%2Flocalhost' \ -d 'grant_type=authorization_code' \ -d 'state=12345'
Microsoft Entra Id belirteci, çağrının
access_token
sonucundaki değerdedir. Değerinstate
bu yordamda daha önce sağladığınız değerle eşleştiğinden emin olun.
MSAL Python kitaplığını kullanarak Microsoft Entra ID belirteçlerini alma
Aşağıdaki bilgileri toplayın:
Parametre Açıklama Kiracı kimliği Azure portalında uygulama yapılandırma bölümünde Microsoft Entra Id'ye kayıtlı ilgili uygulamanın Dizin (kiracı) kimliği. Client ID Microsoft Entra Kimliği'nde kayıtlı ilgili uygulamanın Uygulama (istemci) kimliği. Bu yordam, Microsoft Entra Kimliği'nde kayıtlı ilgili uygulama için Yeniden Yönlendirme URI'si olarak ayarladığınızı
http://localhost
varsayar.komutunu çalıştırarak
pip install msal
yerel makinenize MSAL Python SDK'sını yükleyin.Aşağıdaki kodu yerel makinenizde olduğu gibi
get-tokens.py
kaydedin.# Given the client ID and tenant ID for an app registered in Azure, # provide a <ms-entra-id> access token and a refresh token. # If the caller is not already signed in to Azure, the caller's # web browser will prompt the caller to sign in first. # pip install msal from msal import PublicClientApplication import sys # You can hard-code the registered app's client ID and tenant ID here, # or you can provide them as command-line arguments to this script. client_id = '<client-id>' tenant_id = '<tenant-id>' # Do not modify this variable. It represents the programmatic ID for # Azure Databricks along with the default scope of '/.default'. scopes = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ] # Check for too few or too many command-line arguments. if (len(sys.argv) > 1) and (len(sys.argv) != 3): print("Usage: get-tokens.py <client ID> <tenant ID>") exit(1) # If the registered app's client ID and tenant ID are provided as # command-line variables, set them here. if len(sys.argv) > 1: client_id = sys.argv[1] tenant_id = sys.argv[2] app = PublicClientApplication( client_id = client_id, authority = "https://login.microsoftonline.com/" + tenant_id ) acquire_tokens_result = app.acquire_token_interactive( scopes = scopes ) if 'error' in acquire_tokens_result: print("Error: " + acquire_tokens_result['error']) print("Description: " + acquire_tokens_result['error_description']) else: print("Access token:\n") print(acquire_tokens_result['access_token']) print("\nRefresh token:\n") print(acquire_tokens_result['refresh_token'])
Aşağıdakilerden birini yapın:
- Yukarıdaki kodda değerini kayıtlı uygulamanın istemci kimliğiyle ve
<tenant-id>
kayıtlı uygulamanın kiracı kimliğiyle değiştirin<client-id>
ve ardından betiği çalıştırın, örneğinpython get-tokens.py
. - Betiği çalıştırdığınızda, örneğin
python get-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de
, kayıtlı uygulamanın istemci kimliğini ve kayıtlı uygulamanın kiracı kimliğini belirtin.
- Yukarıdaki kodda değerini kayıtlı uygulamanın istemci kimliğiyle ve
Web tarayıcınız sizi isterse Azure'da oturum açın.
Microsoft Entra Id erişimi ve yenileme belirteçleri çıktıda yazdırılır.
Kullanıcı adı-parola akışı (programlı)
Kullanıcı adı ve parolayla oturum açma yetkiniz varsa aşağıdaki bilgileri toplayın:
Parametre Açıklama Kiracı kimliği Azure portalında uygulama yapılandırma bölümünde Microsoft Entra Id'ye kayıtlı ilgili uygulamanın Dizin (kiracı) kimliği. Client ID Microsoft Entra Id'de kayıtlı olan gerçek uygulamanın Uygulama (istemci) kimliği. Kullanıcı adı ve parola Kullanıcı adı (azure portalında oturum açtığınızda e-posta adresi) ve kiracıdaki kullanıcının parolası. Bu yordam, Microsoft Entra Kimliği'nde kayıtlı ilgili uygulama için Yeniden Yönlendirme URI'si olarak ayarladığınızı
http://localhost
varsayar.komutunu çalıştırarak
pip install msal
yerel makinenize MSAL Python SDK'sını yükleyin.Aşağıdaki kodu yerel makinenizde olduğu gibi
get-tokens-for-user.py
kaydedin.# Given the client ID and tenant ID for an app registered in Azure, # along with an Azure username and password, # provide a <ms-entra-id> access token and a refresh token. # If the caller is not already signed in to Azure, the caller's # web browser will prompt the caller to sign in first. # pip install msal from msal import PublicClientApplication import sys # You can hard-code the registered app's client ID and tenant ID here, # along with the Azure username and password, # or you can provide them as command-line arguments to this script. client_id = '<client-id>' tenant_id = '<tenant-id>' username = '<username>' password = '<password>' # Do not modify this variable. It represents the programmatic ID for # Azure Databricks along with the default scope of '/.default'. scope = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ] # Check for too few or too many command-line arguments. if (len(sys.argv) > 1) and (len(sys.argv) != 5): print("Usage: get-tokens-for-user.py <client ID> <tenant ID> <username> <password>") exit(1) # If the registered app's client ID and tenant ID along with the # Azure username and password are provided as command-line variables, # set them here. if len(sys.argv) > 1: client_id = sys.argv[1] tenant_id = sys.argv[2] username = sys.argv[3] password = sys.argv[4] app = PublicClientApplication( client_id = client_id, authority = "https://login.microsoftonline.com/" + tenant_id ) acquire_tokens_result = app.acquire_token_by_username_password( username = username, password = password, scopes = scope ) if 'error' in acquire_tokens_result: print("Error: " + acquire_tokens_result['error']) print("Description: " + acquire_tokens_result['error_description']) else: print("Access token:\n") print(acquire_tokens_result['access_token']) print("\nRefresh token:\n") print(acquire_tokens_result['refresh_token'])
Aşağıdakilerden birini yapın:
- Yukarıdaki kodda değerini kayıtlı uygulamanın istemci kimliğiyle, kayıtlı uygulamanın kiracı kimliğiyle,
<tenant-id>
<username>
kullanıcı adıyla ve parolayla değiştirin<client-id>
ve<password>
ardından betiği çalıştırın, örneğinpython get-tokens-for-user.py
. - Örneğin
python get-tokens-for-user.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de someone@example.com "MyPa55w&rd!"
, betiği çalıştırdığınızda kayıtlı uygulamanın istemci kimliğini, kayıtlı uygulamanın kiracı kimliğini, kullanıcı adını ve parolayı belirtin. Komut satırı bağımsız değişkeni özel karakterler içeriyorsa, bunu tırnak işaretleri ile çevrelemelisiniz.
- Yukarıdaki kodda değerini kayıtlı uygulamanın istemci kimliğiyle, kayıtlı uygulamanın kiracı kimliğiyle,
Microsoft Entra Id erişimi ve yenileme belirteçleri terminalinize yazdırılır.
Databricks REST API'sine erişmek için Microsoft Entra ID erişim belirteci kullanma
Bu bölümde Databricks REST API'sini çağırmak için Microsoft Entra Id erişim belirtecinin nasıl kullanılacağı açıklanmaktadır. Aşağıdaki örneklerde değerini Microsoft Entra Id erişim belirteciyle ve <databricks-instance>
Azure Databricks dağıtımınızın çalışma alanı başına URL'si ile değiştirin<access-token>
.
Python örneği
Bu örnekte, Bir Azure Databricks çalışma alanında kümelerin nasıl listelenmesi gösterilmektedir.
import requests
import json
databricks_instance = '<databricks-instance>'
api_version = '/api/2.0'
api_command = '/clusters/list'
url = f"https://{databricks_instance}{api_version}{api_command}"
access_token = '<access-token>'
response = requests.get(
url = url,
headers = { 'Authorization': "Bearer " + access_token}
)
print(json.dumps(json.loads(response.text), indent = 2))
Not
Yönetici olmayan bir kullanıcıysanız ve yönetici kullanıcı olarak oturum açmak istiyorsanız, üst bilgiye 'Authorization' : 'Bearer '
ek olarak üst bilgiyi sağlamanız X-Databricks-Azure-Workspace-Resource-Id
ve Azure'daki çalışma alanı kaynağında Katkıda Bulunan veya Sahip rolünde olmanız gerekir. Değeri aşağıdaki gibi oluşturursunuz X-Databricks-Azure-Workspace-Resource-Id
:
# ...
subscription = '<azure-subscription-id>'
resource_group = '<azure-resource-group-name>'
workspace = '<databricks-workspace-name-in-azure>'
db_resource_id = '/subscriptions/%s/resourcegroups/%s/providers/microsoft.databricks/workspaces/%s' % (
subscription,
resource_group,
workspace
)
# ...
headers = {
'Authorization': "Bearer " + access_token,
'X-Databricks-Azure-Workspace-Resource-Id': db_resource_id
}
# ...
Azure'da abonelik, kaynak ve çalışma alanı bilgilerini almak için bkz . Kaynakları açma. Hedef kaynağı açmak için Azure Databricks hizmet türünü ve Azure'da hedef Azure Databricks çalışma alanı hakkında bildiğiniz diğer bilgileri arayabilirsiniz.
curl
örnek
curl -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <access-token>' \
https://<databricks-instance>/api/2.0/clusters/list
Microsoft Entra Id erişim belirtecini yenileme
Microsoft Entra Id erişim belirtecinizle birlikte bir yenileme belirteci alırsanız, yeni bir belirteç almak için yenileme belirtecini kullanabilirsiniz. Varsayılan olarak, Microsoft Entra Id erişim belirteçlerinin ömrü 60 ile 90 dakika (ortalama 75 dakika) arasında rastgele bir zaman aralığıdır. Microsoft Entra Id'de (eski adı Azure Active Directory) Yapılandırılabilir belirteç ömrü içindeki yöntemleri kullanarak Microsoft Entra Id erişim belirteçlerinin ömrünü yapılandırabilirsiniz.
Aşağıdaki örnekte, yeni bir belirteç elde etmek için MSAL Python kitaplığının ve yenileme belirtecinin nasıl kullanılacağı gösterilmektedir.
Aşağıdaki kodu yerel makinenizde olduğu gibi
refresh-tokens.py
kaydedin.# Given the client ID and tenant ID for an app registered in Azure, # along with a refresh token, provide a new <ms-entra-id> access token and # refresh token. # If the caller is not already signed in to Azure, the caller's # web browser will prompt the caller to sign in first. # pip install msal from msal import PublicClientApplication import sys # You can hard-code the registered app's client ID, tenant ID, # and refresh token here, or you can provide them as command-line # arguments to this script. client_id = '<client-id>' tenant_id = '<refresh-token' refresh_token = '<refresh-token>' # Do not modify this variable. It represents the programmatic ID for # Azure Databricks along with the default scope of '.default'. scope = [ '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' ] # Check for too few or too many command-line arguments. if (len(sys.argv) > 1) and (len(sys.argv) != 4): print("Usage: refresh-tokens.py <client ID> <tenant ID> <refresh token>") exit(1) # If the registered app's client ID, tenant ID, and refresh token are # provided as command-line variables, set them here. if len(sys.argv) > 1: client_id = sys.argv[1] tenant_id = sys.argv[2] refresh_token = sys.argv[3] app = PublicClientApplication( client_id = client_id, authority = "https://login.microsoftonline.com/" + tenant_id ) acquire_tokens_result = app.acquire_token_by_refresh_token( refresh_token = refresh_token, scopes = scope ) if 'error' in acquire_tokens_result: print("Error: " + acquire_tokens_result['error']) print("Description: " + acquire_tokens_result['error_description']) else: print("\nNew access token:\n") print(acquire_tokens_result['access_token']) print("\nNew refresh token:\n") print(acquire_tokens_result['refresh_token'])
Aşağıdakilerden birini yapın:
- Yukarıdaki kodda değerini kayıtlı uygulamanın istemci kimliğiyle,
<tenant-id>
kayıtlı uygulamanın kiracı kimliğiyle ve yenileme belirteciyle değiştirin<client-id>
ve<refresh-token>
ardından betiği çalıştırın, örneğinpython get-tokens-for-user.py
. - Örneğin
python refresh-tokens.py 12a34b56-789c-0d12-e3fa-b456789c0123 a1bc2d34-5e67-8f89-01ab-c2345d6c78de "0.ASkAIj...huE84ALg"
, betiği çalıştırdığınızda kayıtlı uygulamanın istemci kimliğini, kayıtlı uygulamanın kiracı kimliğini ve yenileme belirtecini sağlayın. Komut satırı bağımsız değişkeni özel karakterler içeriyorsa, bunu tırnak içinde çevrelemelisiniz.
- Yukarıdaki kodda değerini kayıtlı uygulamanın istemci kimliğiyle,
Yeni Microsoft Entra Id erişimi ve yenileme belirteçleri terminalinize yazdırılır.