Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Erişim belirteçleri, Azure İletişim Hizmetleri SDK'larının belirli bir kimlik olarak doğrudan Azure İletişim Hizmetleri'ne karşı kimlik doğrulaması yapmasını sağlar. Uygulamanızdaki bir çağrıya veya sohbet yazışmasına katılmalarını istiyorsanız, son kullanıcılar için erişim belirteçleri oluşturmanız gerekir.
Bu makalede, kimlik oluşturmak ve erişim belirteçlerinizi yönetmek için Azure İletişim Hizmetleri SDK'larının nasıl kullanılacağı açıklanmaktadır. Üretim kullanım örnekleri için, İstemci ve sunucu mimarisinde açıklandığı gibi sunucu tarafı hizmette erişim belirteçleri oluşturmanızı öneririz.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
- Aktif bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- Azure CLI'yı yükleyin.
Ortamınızı ayarlama
Uzantıyı ekleme
komutunu kullanarak Azure CLI için Azure İletişim Hizmetleri uzantısını az extension
ekleyin.
az extension add --name communication
Azure CLI'da oturum açma
Azure CLI'da oturum açmanız gerekir. Terminalden komutu çalıştırarak az login
oturum açabilir ve ardından kimlik bilgilerinizi sağlayabilirsiniz.
(İsteğe bağlı) Bağlantı dizesini geçirmeden Azure CLI kimlik işlemlerini kullanma
Azure CLI kimlik işlemlerini kullanmak için AZURE_COMMUNICATION_CONNECTION_STRING
ortam değişkenini, bağlantı dizesini aktarmak zorunda kalmadan kullanacak şekilde --connection_string
yapılandırabilirsiniz. Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin.
<yourConnectionString>
ile gerçek bağlantı dizesini değiştirin.
Bir konsol penceresi açın ve aşağıdaki komutu girin:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Erişim belirtecinizi bir ortam değişkeninde depolama
Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin.
<yourAccessToken>
ifadesini gerçek erişim belirtecinizle değiştirin.
Bir konsol penceresi açın ve aşağıdaki komutu girin:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Operasyonlar
Kimlik oluşturma
Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar. dizinde benzersiz bir user create
ile yeni bir giriş oluşturmak için Id
komutunu kullanın. Kimlik daha sonra erişim belirteçleri verme için gereklidir.
az communication identity user create --connection-string "<yourConnectionString>"
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin.
Kimlik oluşturma ve aynı istekte erişim belirteci verme
İletişim Hizmetleri kimliği oluşturmak ve aynı anda bu kimlik için bir erişim belirteci vermek için aşağıdaki komutu çalıştırın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri'nde kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.
az communication identity token issue --scope chat --connection-string "<yourConnectionString>"
Kodda bu değişikliği yapın:
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin.
Erişim belirteci ver
İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek için aşağıdaki komutu çalıştırın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri'nde kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.
az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"
Kodda bu değişikliği yapın:
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin. -
<userId>
ifadesini userId değerinizle değiştirin.
Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir.
expires_on
Yanıt özelliği erişim belirtecinin ömrünü belirtir.
Birden çok kapsamla erişim belirteci verme
İletişim Hizmetleri kimliğiniz için birden çok kapsama sahip bir erişim belirteci vermek için aşağıdaki komutu çalıştırın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın.
az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"
Kodda bu değişikliği yapın:
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin. -
<userId>
ifadesini userId değerinizle değiştirin.
Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir.
expires_on
Yanıt özelliği erişim belirtecinin ömrünü belirtir.
İletişim Kimliği erişim belirteci için Teams kullanıcısının Microsoft Entra erişim belirtecini değiştirme
Teams kullanıcısına token get-for-teams-user
Azure İletişim Hizmetleri SDK'larıyla kullanılabilecek bir erişim belirteci vermek için komutunu kullanın.
az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"
Kodda bu değişikliği yapın:
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin. -
<yourAadUser>
öğesini Microsoft Entra kullanıcı kimliğinizle değiştirin. -
<yourAadApplication>
değerini Microsoft Entra uygulama kimliğiniz ile değiştirin. -
<yourAadToken>
'i Microsoft Entra erişim belirtecinizle değiştirin.
Erişim belirteçlerini iptal etme
Erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız.
token revoke
komutu, kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.
az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"
Kodda bu değişikliği yapın:
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin. -
<userId>
ifadesini userId değerinizle değiştirin.
Bir kimliği sil
Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunu yaptığınızda kimlikle ilişkili tüm kalıcı içerik de kaldırılır.
az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"
Kodda bu değişikliği yapın:
- Bağlantı dizesini
<yourConnectionString>
ile değiştirin. -
<userId>
ifadesini userId değerinizle değiştirin.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
- İşletim sisteminiz için en son .NET Core SDK sürümü.
- Aktif bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
Kodun son hali
GitHub'da son haline getirilmiş kodu bulun.
Ortamınızı ayarlama
Yeni bir C# uygulaması oluşturun.
cmd, PowerShell veya Bash gibi bir komut istemi penceresinde komutunu çalıştırarak
dotnet new
adlıAccessTokensQuickstart
yeni bir konsol uygulaması oluşturun. Bu komut, tek bir kaynak dosyasıProgram.cs
olan basit bir Hello World C# projesi oluşturur.dotnet new console -o AccessTokensQuickstart
Dizininizi yeni oluşturulan uygulama klasörüne değiştirin ve uygulamanızı derlemek için komutunu kullanın
dotnet build
.cd AccessTokensQuickstart dotnet build
Basit
Hello World
bir çıkış görüntülenir. Doğru görüntüleniyorsa kurulumunuz çalışıyor ve Azure İletişim Hizmetleri kodunuzu yazmaya başlayabilirsiniz.
Paketi yükle
Uygulama dizinindeyken, dotnet add package
komutunu kullanarak Azure İletişim Hizmetleri Kimlik kitaplığını .NET paketi için yükleyin.
dotnet add package Azure.Communication.Identity
Uygulama çerçevesini kur
Proje dizininde aşağıdaki adımları tamamlayın:
-
Program.cs
dosyasını bir metin düzenleyicisinde açın. -
using
ad alanını içerecek birAzure.Communication.Identity
yönerge ekleyin. - Eşzamansız kodu desteklemek için
Main
yöntem bildirimini güncelleştirin.
Başlamak için aşağıdaki kodu çalıştırın:
using System;
using Azure;
using Azure.Core;
using Azure.Communication.Identity;
namespace AccessTokensQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Access Tokens Quickstart");
// Quickstart code goes here
}
}
}
İstemcinin kimliğini doğrulama
Bağlantı dizesi CommunicationIdentityClient
ile başlatın. Yöntemine Main
eklediğiniz aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRING
bir ortam değişkeninden kaynağın bağlantı dizesini alır.
Daha fazla bilgi için bkz. İletişim Hizmetleri kaynaklarını > oluşturma ve yönetme Bağlantı dizenizi depolama.
// This code demonstrates how to retrieve your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
var client = new CommunicationIdentityClient(connectionString);
Alternatif olarak, aşağıdaki kodu çalıştırarak uç noktayı ve erişim anahtarını ayırabilirsiniz:
// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
string endpoint = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ENDPOINT");
string accessKey = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ACCESSKEY");
var client = new CommunicationIdentityClient(new Uri(endpoint), new AzureKeyCredential(accessKey));
Zaten bir Microsoft Entra uygulaması ayarladıysanız, Microsoft Entra Id kullanarak kimlik doğrulaması yapabilirsiniz.
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);
Kimlik oluşturma
Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar.
createUser
yöntemini kullanarak dizinde benzersiz Id
ile yeni bir giriş oluşturun. Daha sonra erişim belirteçleri vermek için kimliği kullanın.
var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Alınan kimliği uygulama kullanıcılarınıza eşlemeyle (örneğin, uygulama sunucusu veritabanınızda depolayarak) depolayın.
(Önizleme) İlişkili customId ile kimlik oluşturma
Önemli
Bu özellik SDK sürümünden 1.4.0-beta1
itibaren kullanılabilir.
Uyarı
Bu özellik şu anda önizleme aşamasındadır.
Uygulamanızın kullanıcı kimliklerini Azure İletişim Hizmetleri kimlikleriyle eşlemek için ilişkili customId
bir kimlik oluşturabilirsiniz. yöntemini aynı CreateUser
ile yeniden çağırırsanızcustomId
, aynı user.Id
döndürür. Bu, eşlemeyi kendiniz depolamanız gerekliliğini ortadan kaldırır.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
Console.WriteLine($"\nCreated an identity with ID: {user.Id}");
(Önizleme) Kimlik ayrıntılarını alma
Önemli
Bu özellik SDK sürümünden 1.4.0-beta1
itibaren kullanılabilir.
Uyarı
Bu özellik şu anda önizleme aşamasındadır.
GetUserDetail
yöntemini, customId
ve lastTokenIssuedAt
dahil olmak üzere bir kullanıcı hakkında bilgi almak için kullanabilirsiniz.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
var userDetails = client.GetUserDetail(user);
Console.WriteLine($"User ID: {userDetails.Id}");
Console.WriteLine($"Custom ID: {userDetails.CustomId}");
Console.WriteLine($"Last token issued at: {userDetails.LastTokenIssuedAt}");
Erişim belirteci oluşturma
İletişim Hizmetleri kimliğiniz var olduktan sonra, onun için bir erişim belirteci vermek amacıyla GetToken
yöntemini kullanın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın. Ayrıca, Azure İletişim Hizmeti kimliğinin communicationUser
dize gösterimini temel alan yeni bir örneği de oluşturabilirsiniz.
// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
var tokenResponse = await client.GetTokenAsync(identity, scopes: new [] { CommunicationTokenScope.VoIP });
// Get the token from the response
var token = tokenResponse.Value.Token;
var expiresOn = tokenResponse.Value.ExpiresOn;
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcı deneyiminizin kesintiye uğramasına neden olabilir.
expiresOn
özelliği, erişim belirtecinin ömrünü gösterir.
Özel belirteç süre sonu zamanı ayarlama
Varsayılan belirtecin süre sonu 24 saattir, ancak isteğe bağlı parametresine tokenExpiresIn
bir saat ile 24 saat arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için iletişim oturumunun beklenen tipik uzunluğunu belirtin.
// Issue an access token with a validity of an hour and the "voip" scope for an identity
TimeSpan tokenExpiresIn = TimeSpan.FromHours(1);
CommunicationTokenScope[] scopes = new[] { CommunicationTokenScope.VoIP };
var tokenResponse = await client.GetTokenAsync(identity, scopes, tokenExpiresIn);
Aynı istekte kimlik oluşturun ve belirteç verin
İletişim Hizmetleri kimliği oluşturmak ve buna aynı anda bir erişim belirteci çıkarmak için CreateUserAndTokenAsync
yöntemini kullanabilirsiniz.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri'nde kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
var identityAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
(Önizleme) Aynı istekte özel bir kimlikle kimlik oluşturma ve belirteç çıkarma
Önemli
Bu özellik SDK sürümünden 1.4.0-beta1
itibaren kullanılabilir.
Uyarı
Bu özellik şu anda önizleme aşamasındadır.
Özel kimliğinizi CreateUserAndTokenAsync
yöntemine ileterek tek bir çağrıda kimlik oluşturabilir ve erişim belirteci verebilirsiniz.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
Response<CommunicationUserIdentifierAndToken> identityAndTokenResponse = await client.CreateUserAndTokenAsync(customId: "bob@contoso.com", scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.User;
var token = identityAndTokenResponse.AccessToken.Token;
var expiresOn = identityAndTokenResponse.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Erişim belirtecini yenileme
Erişim belirtecini yenilemek için CommunicationUserIdentifier
nesnesinin bir örneğini GetTokenAsync
aktarın. Bunu Id
depoladıysanız ve yeni bir CommunicationUserIdentifier
oluşturmanız gerekiyorsa, depoladığınız Id
öğesini CommunicationUserIdentifier
oluşturucusuna aşağıdaki şekilde geçirerek bunu yapabilirsiniz.
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Erişim belirteçlerini iptal etme
Erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde. yöntemi, RevokeTokensAsync
kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Bir kimliği sil
Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için daha fazla erişim belirteci sorununu önlersiniz. Bunu yaptığınızda kimlikle ilişkili tüm kalıcı içerik de kaldırılır.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
Kodu çalıştır
Erişim belirtecini oluşturmayı bitirdiğinizde, komutunu kullanarak dotnet run
uygulamayı uygulama dizininizden çalıştırabilirsiniz.
dotnet run
Uygulamanın çıkışı, tamamlanan her eylemi açıklar:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 10/11/2022 7:34:29 AM +00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 10/11/2022 7:34:29 AM +00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
- Node.js Etkin LTS ve Bakım LTS sürümleri (8.11.1 ve 10.14.1 önerilir).
- Aktif bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
Kodun son hali
GitHub'da son haline getirilmiş kodu bulun.
Ortamınızı ayarlama
Yeni bir Node.js uygulaması oluşturma
Terminal veya komut istemi penceresinde uygulamanız için yeni bir dizin oluşturun ve açın.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Varsayılan ayarlarla bir
npm init -y
dosyası oluşturmak içinpackage.json
çalıştırın.npm init -y
Paketi yükle
npm install
JavaScript için Azure İletişim Hizmetleri Kimlik SDK'sını yüklemek için komutunu kullanın.
npm install @azure/communication-identity@latest --save
--save
seçeneği, package.json
dosyanızda kütüphaneyi bir bağımlılık olarak listeler.
Uygulama çerçevesini kur
Proje dizininde adlı
issue-access-token.js
bir dosya oluşturun ve aşağıdaki kodu ekleyin:const { CommunicationIdentityClient } = require('@azure/communication-identity'); const main = async () => { console.log("Azure Communication Services - Access Tokens Quickstart") // Quickstart code goes here }; main().catch((error) => { console.log("Encountered an error"); console.log(error); })
İstemcinin kimliğini doğrulama
CommunicationIdentityClient
ile bağlantı dizesini başlatın. Yöntemine Main
eklediğiniz aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRING
bir ortam değişkeninden kaynağın bağlantı dizesini alır.
Daha fazla bilgi için bkz. İletişim Hizmetleri kaynaklarını > oluşturma ve yönetme Bağlantı dizenizi depolama.
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(connectionString);
Alternatif olarak, aşağıdaki kodu çalıştırarak uç noktayı ve erişim anahtarını ayırabilirsiniz:
// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const accessKey = process.env["COMMUNICATION_SERVICES_ACCESSKEY"];
// Create the credential
const tokenCredential = new AzureKeyCredential(accessKey);
// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential)
Zaten bir Microsoft Entra uygulaması ayarladıysanız, Microsoft Entra Id kullanarak kimlik doğrulaması yapabilirsiniz.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);
Kimlik oluşturma
Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar.
createUser
yöntemini kullanarak dizinde benzersiz Id
ile yeni bir giriş oluşturun. Erişim belirteçleri vermek için daha sonra kimliğe ihtiyacınız vardır.
let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);
Alınan kimliği uygulamanızın kullanıcılarına eşleme ile depolayın (örneğin, uygulama sunucusu veritabanınızda depolayarak).
(Önizleme) İlişkili özel kimlikle kimlik oluşturma
Önemli
Bu özellik SDK sürümünden 1.4.0-beta1
itibaren kullanılabilir.
Uyarı
Bu özellik şu anda önizleme aşamasındadır.
Uygulamanızın kullanıcı kimliklerini Azure İletişim Hizmetleri kimlikleriyle eşlemek için ilişkili customId
bir kimlik oluşturabilirsiniz.
createUser
ile aynı customId
'yi çağırdığınızda, hizmet aynı communicationUserId
'yi döndürür. Bu, eşlemeyi kendiniz depolamanız gerekliliğini ortadan kaldırır.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
(Önizleme) Kimlik ayrıntılarını alma
Önemli
Bu özellik SDK sürümünden 1.4.0-beta1
itibaren kullanılabilir.
Uyarı
Bu özellik şu anda önizleme aşamasındadır.
getUserDetail
yöntemini, customId
ve lastTokenIssuedAt
dahil olmak üzere bir kullanıcı hakkında bilgi almak için kullanabilirsiniz.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
let userDetails = client.getUserDetail(user);
console.log(`\nUser ID: ${user.communicationUserId}`);
console.log(`\nCustom ID: ${userDetails.customId}`);
console.log(`\nLast token issued at: ${userDetails.lastTokenIssuedAt}`);
Erişim belirteci oluşturma
İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek üzere getToken
yöntemini kullanın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın. Azure İletişim Hizmeti kimliğinin communicationUser
dize gösterimini temel alan yeni bir örneğini de oluşturabilirsiniz.
// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
let tokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
// Get the token and its expiration date from the response
const { token, expiresOn } = tokenResponse;
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcı deneyiminizin kesintiye uğramasına neden olabilir.
expiresOn
özelliği, erişim belirtecinin ömrünü gösterir.
Özel belirteç süre sonu zamanı ayarlama
Varsayılan belirteç süre sonu 24 saattir (1440 dakika), ancak isteğe bağlı parametresine tokenExpiresInMinutes
60 dakika ile 1440 dakika arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için iletişim oturumunun beklenen tipik uzunluğunu belirtin.
// Issue an access token with a validity of an hour and the "voip" scope for an identity
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let tokenResponse = await identityClient.getToken
(identityResponse, ["voip"], tokenOptions);
Bir yöntem çağrısında kimlik oluşturma ve belirteç verme
İletişim Hizmetleri kimliği oluşturmak ve buna aynı anda bir erişim belirteci çıkarmak için createUserAndToken
yöntemini kullanabilirsiniz.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Bunu voip
kapsamıyla oluşturun.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
let identityTokenResponse = await identityClient.createUserAndToken(["voip"]);
// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
(Önizleme) Bir kimlik oluşturma ve customId de dahil olmak üzere tek bir yöntem çağrısında belirteç verme
Önemli
Bu özellik SDK sürümünden 1.4.0-beta1
itibaren kullanılabilir.
Uyarı
Bu özellik şu anda önizleme aşamasındadır.
Özel kimliğinizi createUserAndToken
yöntemine ileterek tek bir çağrıda kimlik oluşturabilir ve erişim belirteci verebilirsiniz.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
const customId = "bob@contoso.com";
let identityTokenResponse = await identityClient.createUserAndToken(["voip"], { customId });
// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Erişim belirtecini yenileme
Belirteçlerin süresi doldukçe bunları yenilemeniz gerekir. Belirteçleri yenilemek için, belirteçleri vermek için kullanılan kimlikle getToken
yeniden çağırın. Yenilenen belirteçlerin scopes
'i de sağlamanız gerekir.
// Value of identityResponse represents the Azure Communication Services identity stored during identity creation and then used to issue the tokens being refreshed
let refreshedTokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
Erişim belirteçlerini iptal etme
Erişim belirtecini iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. yöntemi, revokeTokens
kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Bir kimliği sil
Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için daha fazla erişim belirteci sorununu önlersiniz. Bunu yaptığınızda kimlikle ilişkili tüm kalıcı içerik de kaldırılır.
await identityClient.deleteUser(identityResponse);
console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);
Kodu çalıştır
Konsol isteminden ,issue-access-token.js dosyasını içeren dizine gidin ve ardından aşağıdaki node
komutu yürüterek uygulamayı çalıştırın:
node ./issue-access-token.js
Uygulama çıkışı, tamamlanan her eylemi açıklar:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
- Python 3.8+.
- Aktif bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
Kodun son hali
GitHub'da son haline getirilmiş kodu bulun.
Ortamınızı ayarlama
Yeni bir Python uygulaması oluşturun
Terminal veya komut istemi penceresinde uygulamanız için yeni bir dizin oluşturun ve açın.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Proje kök dizininde adlı
issue-access-tokens.py
bir dosya oluşturmak için bir metin düzenleyicisi kullanın. Ardından temel özel durum işleme dahil olmak üzere programın yapısını ekleyin. Tüm kaynak kodu bu dosyaya eklersiniz.import os from datetime import timedelta from azure.communication.identity import CommunicationIdentityClient, CommunicationUserIdentifier try: print("Azure Communication Services - Access Tokens Quickstart") # Quickstart code goes here except Exception as ex: print("Exception:") print(ex)
Paketi yükle
Uygulama dizinindeyken pip install
komutunu kullanarak Python için Azure İletişim Hizmetleri Kimlik SDK'sını yükleyin.
pip install azure-communication-identity
İstemcinin kimliğini doğrulama
CommunicationIdentityClient
örneğini bağlantı dizesi ile oluşturun. Bloğuna try
eklediğiniz aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRING
bir ortam değişkeninden kaynağın bağlantı dizesini alır.
Daha fazla bilgi için bkz. İletişim Hizmetleri kaynaklarını > oluşturma ve yönetme Bağlantı dizenizi depolama.
# This code demonstrates how to retrieve your connection string
# from an environment variable.
connection_string = os.environ["COMMUNICATION_SERVICES_CONNECTION_STRING"]
# Instantiate the identity client
client = CommunicationIdentityClient.from_connection_string(connection_string)
Alternatif olarak, zaten bir Microsoft Entra uygulaması ayarladıysanız , Microsoft Entra Id kullanarak kimlik doğrulaması yapabilirsiniz.
endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())
Kimlik oluşturma
Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar.
create_user
yöntemini kullanarak dizinde benzersiz Id
ile yeni bir giriş oluşturun. Kimlik daha sonra erişim belirteçleri vermek için gereklidir.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
Alınan kimliği uygulama kullanıcılarınıza eşlemeyle (örneğin, uygulama sunucusu veritabanınızda depolayarak) depolayın.
Erişim belirteci oluşturma
İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek üzere get_token
yöntemini kullanın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın. Ayrıca Azure İletişim Hizmeti kimliğinin dize gösterimini temel alan yeni bir parametre CommunicationUserIdentifier
örneği de oluşturabilirsiniz.
# Issue an access token with a validity of 24 hours and the "voip" scope for an identity
token_result = client.get_token(identity, ["voip"])
print("\nIssued an access token with 'voip' scope that expires at " + token_result.expires_on + ":")
print(token_result.token)
Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcı deneyiminizin kesintiye uğramasına neden olabilir.
expires_on
Yanıt özelliği erişim belirtecinin ömrünü belirtir.
Özel belirteç süre sonu zamanı ayarlama
Varsayılan belirtecin süre sonu 24 saattir, ancak isteğe bağlı parametresine token_expires_in
bir saat ile 24 saat arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için iletişim oturumunun beklenen tipik uzunluğunu belirtin.
# Issue an access token with a validity of an hour and the "voip" scope for an identity
token_expires_in = timedelta(hours=1)
token_result = client.get_token(identity, ["voip"], token_expires_in=token_expires_in)
Kimlik oluşturma ve aynı istekte erişim belirteci verme
İletişim Hizmetleri kimliği oluşturmak ve buna aynı anda bir erişim belirteci çıkarmak için create_user_and_token
yöntemini kullanabilirsiniz.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri'nde kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.
# Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
identity_token_result = client.create_user_and_token(["voip"])
# Get the token details from the response
identity = identity_token_result[0]
token = identity_token_result[1].token
expires_on = identity_token_result[1].expires_on
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)
Erişim belirtecini yenileme
Var olan kimliği geçirerek bir belirteci yeniden göndermek için CommunicationUserIdentifier
nesnesini kullanarak erişim belirtecini yenileyin.
# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])
Erişim belirteçlerini iptal etme
Erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde. yöntemi, revoke_tokens
kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Bir kimliği sil
Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunu yaptığınızda kimlikle ilişkili tüm kalıcı içerik de kaldırılır.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
Kodu çalıştır
Konsol isteminden, dosyayı içeren issue-access-tokens.py
dizine gidin ve ardından aşağıdaki python
komutu yürüterek uygulamayı çalıştırın.
python ./issue-access-tokens.py
Oluşturulan çıkış, tamamlanan her eylemi açıklar:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
- Java Development Kit (JDK) sürüm 8 veya üzeri.
- Apache Maven.
- Aktif bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
Kodun son hali
GitHub'da son haline getirilmiş kodu bulun.
Ortamınızı ayarlama
Yeni bir Java uygulaması oluşturun
Terminal veya komut istemi penceresinde, Java uygulamanızı oluşturmak istediğiniz dizine gidin. maven-archetype-quickstart şablonundan bir Java projesi oluşturmak için aşağıdaki kodu çalıştırın:
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
generate
görevin, adı artifactId
olan bir dizin oluşturduğuna dikkat edin. Bu dizin altında, src/main/java
dizin proje kaynak kodunu içerir, src/test/java
dizin test kaynağını içerir ve pom.xml
dosya projenin Proje Nesne Modeli veya POM'dir. Bu dosya proje yapılandırma parametreleri için kullanılır.
İletişim Hizmetleri paketlerini yükleme
pom.xml
Dosyayı metin düzenleyicinizde açın. Bağımlılık grubuna aşağıdaki bağımlılık öğesini ekleyin:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
<version>[1.4.0,)</version>
</dependency>
Bu kod Maven'a, daha sonra kullanmanız gereken İletişim Hizmetleri Kimlik SDK'sını yüklemesini ister.
Uygulama çerçevesini kur
Proje dizininde aşağıdaki adımları tamamlayın:
- Dizine
/src/main/java/com/communication/quickstart
gidin. -
App.java
Dosyayı düzenleyicinizde açın. -
System.out.println("Hello world!");
ifadesini değiştirin. - Yönergeleri ekleyin
import
.
Başlamak için aşağıdaki kodu kullanın:
package com.communication.quickstart;
import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.core.credential.*;
import java.io.IOException;
import java.time.*;
import java.util.*;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Access Tokens Quickstart");
// Quickstart code goes here
}
}
İstemcinin kimliğini doğrulama
Kaynağınızın erişim anahtarı ve uç noktasıyla CommunicationIdentityClient
örneğini oluşturun. Daha fazla bilgi için bkz. İletişim Hizmetleri kaynaklarını > oluşturma ve yönetme Bağlantı dizenizi depolama.
İstemciyi, com.azure.core.http.HttpClient
arayüzünü uygulayan herhangi bir özel HTTP istemcisiyle de başlatabilirsiniz.
App.java
dosyasına, main
yöntemine aşağıdaki kodu ekleyin:
// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
String accessKey = "SECRET";
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(accessKey))
.buildClient();
Uç nokta ve erişim anahtarı sağlamak yerine, connectionString()
bağlantı dizesinin tamamını kullanarak sağlayabilirsiniz.
// You can find your connection string from your Communication Services resource in the Azure portal
String connectionString = "<connection_string>";
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
Zaten bir Microsoft Entra uygulaması ayarladıysanız, Microsoft Entra Id kullanarak kimlik doğrulaması yapabilirsiniz.
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
Kimlik oluşturma
Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar.
createUser
yöntemini kullanarak dizinde benzersiz Id
ile yeni bir giriş oluşturun.
CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());
Oluşturulan kimlik daha sonra erişim belirteçleri vermek için gereklidir. Alınan kimliği uygulamanızın kullanıcılarına eşleme ile depolayın (örneğin, uygulama sunucusu veritabanınızda depolayarak).
Erişim belirteci oluşturma
İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek üzere getToken
yöntemini kullanın.
scopes
parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın.
Aşağıdaki kodda, bir belirteç almak için önceki adımda oluşturduğunuz kullanıcı değişkenini kullanın.
// Issue an access token with a validity of 24 hours and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes);
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'voip' scope that expires at: " + expiresAt + ": " + token);
Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcı deneyiminizin kesintiye uğramasına neden olabilir.
expiresAt
özelliği, erişim belirtecinin ömrünü gösterir.
Özel belirteç süre sonu zamanı ayarlama
Varsayılan belirtecin süre sonu 24 saattir, ancak isteğe bağlı parametresine tokenExpiresIn
bir saat ile 24 saat arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için iletişim oturumunun beklenen tipik uzunluğunu belirtin.
// Issue an access token with a validity of an hour and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
Duration tokenExpiresIn = Duration.ofHours(1);
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes, tokenExpiresIn);
Kimlik oluşturma ve bir istekte belirteç verme
Alternatif olarak, dizinde benzersiz Id
bir giriş oluşturmak ve aynı anda bir erişim belirteci vermek için 'createUserAndToken' yöntemini kullanabilirsiniz.
//Create an identity and issue token with a validity of 24 hours in one call
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(scopes);
CommunicationUserIdentifier user = result.getUser();
System.out.println("\nCreated a user identity with ID: " + user.getId());
AccessToken accessToken = result.getUserToken();
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'chat' scope that expires at: " + expiresAt + ": " + token);
Erişim belirtecini yenileme
Erişim belirtecini yenilemek için CommunicationUserIdentifier
nesnesini kullanarak yeniden düzenleyin.
// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);
Erişim belirtecini iptal etme
Erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. yöntemi, revokeTokens
belirli bir kullanıcı için tüm etkin erişim belirteçlerini geçersiz hale döndürür. Aşağıdaki kodda, daha önce oluşturulan kullanıcıyı kullanabilirsiniz.
communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());
Bir kimliği sil
Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunu yaptığınızda kimlikle ilişkili tüm kalıcı içerik de kaldırılır.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
Kodu çalıştır
pom.xml
dosyasını içeren dizine gidin.Aşağıdaki
mvn
komutu kullanarak projeyi derleyin:mvn compile
paketi inşa edin:
mvn package
Uygulamayı yürütmek için aşağıdaki
mvn
komutu çalıştırın:mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Çıktı, tamamlanan her eylemi açıklar:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.902864800Z:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'chat' scope that expires at 2022-10-11T07:34:29.902864800Z:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Önkoşullar
Erişim belirteçlerini oluşturma
Azure portalında İletişim Hizmetleri kaynağınızdaki Kimlikler ve Kullanıcı Erişim Belirteçleri dikey penceresine gidin.
Erişim belirteçlerinin kapsamını seçin. Hiçbirini, birini veya birden fazla hizmeti seçebilirsiniz.
Oluştur seçeneğini belirleyin.
Sistem bir kimlik ve buna karşılık gelen kullanıcı erişim belirteci oluşturur.
Bu dizeleri kopyalayın ve örnek uygulamalarda ve diğer test senaryolarında kullanın.
Önkoşullar
Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir Azure hesabı oluşturun.
Etkin bir Azure İletişim Hizmetleri kaynağı. İletişim Hizmetleri kaynağı oluşturun.
Etkin bir Azure Logic Apps kaynağı (mantıksal uygulama). Kullanmak istediğiniz tetikleyiciyle bir Tüketim mantıksal uygulaması iş akışı oluşturun. Şu anda Azure İletişim Hizmetleri Kimlik bağlayıcısı yalnızca eylemler sağladığından mantıksal uygulamanız en azından bir tetikleyici gerektirir.
Kullanıcı oluşturma
Azure İletişim Hizmetleri Kimlik bağlayıcısını kullanarak iş akışınıza yeni bir adım ekleyin. Power Automate akışınız düzenleme modunda açıkken Power Automate'te bu adımları tamamlayın.
Tasarımcıyı açın. Yeni eylemi eklemek istediğiniz adımda Yeni adım'ı seçin. Alternatif olarak, yeni eylemi adımlar arasına eklemek için, bu adımlar arasındaki okun üzerine gelin, artı işaretini (+) seçin ve Eylem ekle'yi seçin.
İşlem seçin arama kutusuna İletişim Hizmetleri Kimliği girin. Eylemler listesinden Kullanıcı oluştur'u seçin.
Bağlantı Dizesini sağlayın. Bunu Microsoft Azure portalında, Azure İletişim Hizmeti Kaynağınızın içinde bulabilirsiniz. Bağlantı Dizesini görüntülemek için sol panel menüsündeKi Tuşlar seçeneğini belirleyin.
Bir Bağlantı Adı belirtin.
Oluştur seçeneğine tıklayın
Bu eylem, İletişim Hizmetleri kullanıcı kimliği olan bir Kullanıcı Kimliği oluşturur. Ayrıca Gelişmiş seçenekleri göster'e tıklayıp Belirteç Kapsamı'nı seçerseniz, eylem ayrıca belirtilen kapsamla bir erişim belirteci ve süre sonu oluşturur.
Kullanıcı erişim jetonu oluştur
İletişim Hizmetleri kimliğinizi aldıktan sonra, bir erişim belirteci yayımlayabilirsiniz. Aşağıdaki adımları tamamlayın:
Yeni bir eylem ekleyin ve arama kutusuna İletişim Hizmetleri Kimliği yazın. Eylemler listesinden Kullanıcı erişim anahtarı ver seçin.
Artık önceki Kullanıcı oluşturma adımının Kullanıcı kimliği çıkışını kullanabilirsiniz.
Belirteç kapsamını belirtin: VoIP veya sohbet. Belirteçler ve kimlik doğrulaması hakkında daha fazla bilgi edinin.
Sistem, belirtilen kapsamla bir erişim belirteci ve geçerlilik süresi oluşturur.
Kullanıcı erişim belirteçlerini iptal etme
İletişim Hizmetleri kimliğiniz olduktan sonra, erişim belirtecini iptal etmek için Kullanıcı erişim belirteci verme eylemini kullanabilirsiniz. Aşağıdaki adımları tamamlayın:
Yeni bir eylem ekleyin ve arama kutusuna İletişim Hizmetleri Kimliği yazın. Eylemler listesinden Kullanıcı erişim belirteçlerini iptal et'i seçin.
Kullanıcı kimliğini belirtin.
Sistem, belirtilen kullanıcı için tüm kullanıcı erişim belirteçlerini iptal eder, bu eylem için çıkış yoktur.
Kullanıcıyı silme
İletişim Hizmetleri kimliğiniz olduktan sonra, erişim belirtecini silmek için Kullanıcı erişim belirteci verme eylemini kullanabilirsiniz. Aşağıdaki adımları tamamlayın:
Yeni bir eylem ekleyin ve arama kutusuna İletişim Hizmetleri Kimliği yazın. Eylemler listesinden Kullanıcı sil'i seçin.
Kullanıcı kimliğini belirtin.
Sistem kullanıcıyı kaldırır ve belirtilen kullanıcı için tüm kullanıcı erişim belirteçlerini iptal eder, bu eylem için çıkış yoktur.
Mantıksal uygulamanızı test edin
İş akışınızı el ile başlatmak için tasarımcı araç çubuğunda Çalıştır'ı seçin. İş akışı bir kullanıcı oluşturur, bu kullanıcı için bir erişim belirteci oluşturur, ardından bunu kaldırır ve kullanıcıyı siler.
Daha fazla bilgi için bkz. İş akışınızı çalıştırma. İş akışı başarıyla çalıştırıldıktan sonra bu eylemlerin çıkışlarını de kontrol edebilirsiniz.
İzleme ve ölçümler için kimlik kullanma
Kullanıcı kimliği, Azure İzleyici aracılığıyla toplanan günlükler ve ölçümler için birincil anahtar görevi görür. Örneğin, bir kullanıcının tüm çağrılarını görüntülemek için kimlik doğrulamanızı belirli bir Azure İletişim Hizmetleri kimliğini (veya kimliklerini) tek bir kullanıcıyla eşleyebilecek şekilde ayarlayabilirsiniz.
Daha fazla bilgi için bakınız:
Kaynakları temizle
İleti̇şi̇m Hi̇zmetleri̇ aboneliğini temizlemek ve kaldırmak için, kaynağı veya kaynak grubunu silin. Bir kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Daha fazla bilgi için bkz. İletişim Hizmetleri kaynaklarını > oluşturma ve yönetme Kaynakları temizleme.
Mantıksal uygulama iş akışınızı ve ilgili kaynakları temizlemek için, Azure portalını kullanarak örnek bir Tüketim mantıksal uygulama iş akışı oluşturma ve kaynakları temizleme bölümlerine bakın.
Sonraki Adımlar
Bu makalede, bir kullanıcının nasıl oluşturulacağı ve silineceği açıklanmıştır. Ayrıca Azure İletişim Hizmetleri Kimlik bağlayıcısını kullanarak kullanıcıya erişim belirteci verme ve kullanıcı erişim belirtecini kaldırma işlemleri de açıklanır. Daha fazla bilgi için bkz. Azure İletişim Hizmetleri Kimlik Bağlayıcısı.
Belirteçlerin diğer bağlayıcılar tarafından nasıl kullanıldığını görmek için Azure İletişim Hizmetleri'ni kullanarak Power Automate'ten nasıl sohbet iletisi gönderebilirsiniz ?
Azure İletişim Hizmetleri E-posta bağlayıcısını kullanarak e-posta gönderme hakkında daha fazla bilgi edinmek için Bkz. Azure İletişim Hizmetleri ile Power Automate'te e-posta iletisi gönderme.