İstemciler için istemci erişim URL'si oluşturma
Tarayıcı, mobil uygulama 📱veya IoT cihazı 💡gibi 💻bir istemci, kaynağınıza bağlanmak ve kaynağınızla kimlik doğrulaması yapmak için İstemci Erişim URL'si kullanır.
URL aşağıdaki desene uyar:
- MQTT istemcileri için , şeklindedir
wss://<service_name>.webpubsub.azure.com/clients/mqtt/hubs/<hub_name>?access_token=<token>
. - Diğer tüm istemciler için.
wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>
Bu makalede, İstemci Erişimi URL'sini almanın çeşitli yolları gösterilmektedir.
- Hızlı başlangıç için Azure portalından bir tane kopyalayın
- Geliştirme için Web PubSub sunucu SDK'sını kullanarak değeri oluşturun
- Microsoft Entra Id kullanıyorsanız İstemci Belirteci Oluşturma REST API'sini de çağırabilirsiniz
Azure portalından kopyalama
Azure portalındaki Anahtarlar sekmesinde, aşağıdaki diyagramda gösterildiği gibi sizin için hızlı bir şekilde bir İstemci Erişim URL'si oluşturmaya yönelik bir İstemci URL Oluşturucu aracı vardır. Buradaki değerler girişi depolanmaz.
MQTT istemcileri için, "İstemci Erişimi URL'si" metin kutusunun önündeki açılan menüde "MQTT İstemcisi" seçeneğini belirlemeniz gerektiğini unutmayın.
Hizmet SDK'sından oluşturma
Web PubSub sunucu SDK'sı kullanılarak aynı İstemci Erişimi URL'si oluşturulabilir.
Nesne oluşturmak
WebPubSubServiceClient
için Sunucu SDK'sını kullanmaya başlama'yı izleyinservice
çağrısı
WebPubSubServiceClient.getClientAccessToken
yaparak İstemci Erişimi URL'si oluşturma:İstemci erişim belirteci oluşturma
// for web pubsub native clients let token = await serviceClient.getClientAccessToken(); // for mqtt clients let token = await serviceClient.getClientAccessToken({ clientProtocol: "mqtt" });
Kullanıcı kimliğini yapılandırma
let token = await serviceClient.getClientAccessToken({ userId: "user1" });
Belirtecin ömrünü yapılandırma
let token = await serviceClient.getClientAccessToken({ expirationTimeInMinutes: 5, });
Bu İstemci Erişimi URL'sini kullanarak bağlandığında gruba
group1
doğrudan katılabilecek bir rol yapılandırınlet token = await serviceClient.getClientAccessToken({ roles: ["webpubsub.joinLeaveGroup.group1"], });
İstemcinin bu İstemci Erişimi URL'sini kullanarak bağlandığında doğrudan gruba
group1
ileti gönderebileceği bir rol yapılandırınlet token = await serviceClient.getClientAccessToken({ roles: ["webpubsub.sendToGroup.group1"], });
Bu İstemci Erişimi URL'sini kullanarak istemcinin bağlandıktan sonra katılabilmesi için bir grup
group1
yapılandırmalet token = await serviceClient.getClientAccessToken({ groups: ["group1"], });
Gerçek dünya kodunda genellikle İstemci Erişimi URL'sini oluşturan mantığı barındırmak için bir sunucu tarafımız vardır. bir istemci isteği geldiğinde, sunucu tarafı istemci isteğini doğrulamak için genel kimlik doğrulama/yetkilendirme iş akışını kullanabilir. İstemci Erişimi URL'sini yalnızca geçerli istemci istekleri geri alabilir.
REST API'den oluşturma :generateToken
Ayrıca Microsoft Entra Id kullanabilir ve İstemci Belirteci Oluştur REST API'sini çağırarak belirteci oluşturabilirsiniz.
Not
Web PubSub, Microsoft Entra ID hizmet sorumluları 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, süresi dolan Microsoft Entra ID belirteçlerini sizin için otomatik olarak oluşturan ve değiştiren SDK'larımızı kullanın.
Microsoft Entra Id'yi etkinleştirmek için Uygulamadan yetki ver'i izleyin.
Microsoft Entra belirtecini alın.
Çağırmak
:generateToken
için Microsoft Entra belirtecini kullanın.Aşağıdaki bilgileri toplayın:
Değer adı Değeri alma TenantId TenantId, kaydettiğiniz uygulamanın Genel Bakış bölmesindeki Dizin (kiracı) Kimliği değeridir. ClientId ClientId, kaydettiğiniz uygulamanın Genel Bakış bölmesindeki Uygulama (istemci) Kimliği değeridir. ClientSecret ClientSecret, 1. adımda yeni eklediğiniz istemci gizli dizisinin değeridir Microsoft kimlik platformu'dan Microsoft Entra Id belirtecini alma
REST API'lerini çağırmayı göstermek için CURL aracını kullanırız. Araç Windows 10/11'de paketlenmiştir ve CURL'yi Yükle'yi izleyerek aracı yükleyebilirsiniz.
# set neccessory values, replace the placeholders with your actual values export TenantId=<your_tenant_id> export ClientId=<your_client_id> export ClientSecret=<your_client_secret> curl -X POST "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=client_credentials" \ --data-urlencode "client_id=$ClientId" \ --data-urlencode "client_secret=$ClientSecret" \ --data-urlencode "scope=https://webpubsub.azure.com/.default"
Yukarıdaki curl komutu, Microsoft Entra Id belirtecini geri almak için Microsoft kimlik uç noktasına bir POST isteği gönderir. Yanıtta, alanda Microsoft Entra Id belirtecini
access_token
görürsünüz. Daha sonra kullanmak üzere bunu kopyalayın ve depolayın.Çağırmak için Microsoft Entra Id belirtecini kullanma
:generateToken
# Replace the values in {} with your actual values. export Hostname={your_service_hostname} export Hub={your_hub} export Microsoft_Entra_Token={Microsoft_entra_id_token_from_previous_step} curl -X POST "https://$Hostname/api/hubs/$Hub/:generateToken?api-version=2024-01-01" \ -H "Authorization: Bearer $Microsoft_Entra_Token" \ -H "Content-Type: application/json"
MQTT istemcileri için belirteci oluşturmanız gerekiyorsa parametresini
clientType=mqtt
URL'ye ekleyin:export Hostname={your_service_hostname} export Hub={your_hub} export Microsoft_Entra_Token={Microsoft_entra_id_token_from_previous_step} curl -X POST "https://$Hostname/api/hubs/$Hub/:generateToken?api-version=2024-01-01&clientType=mqtt" \ -H "Authorization: Bearer $Microsoft_Entra_Token" \ -H "Content-Type: application/json"
Komutu çalıştırdıktan
cURL
sonra aşağıdakine benzer bir yanıt almanız gerekir:{ "token": "ABCDEFG.ABC.ABC" }