我正在尝试设置Azure媒体服务。我从Azure创建了媒体服务,但我不知道从哪里可以获取帐户密钥。
client = new CloudMediaContext(new MediaServicesCredentials(accountName,accountKey));
我正在关注本教程:Integrating applications with Azure Active Directory
但是在“添加应用程序凭据或访问Web API的权限”中的步骤4中获取密钥后,无效。
答案 0 :(得分:3)
client = new CloudMediaContext(new MediaServicesCredentials(accountName,accountKey));
Azure Media Services宣布支持AAD和弃用ACS身份验证。
由于Azure Active Directory提供了强大的基于角色的访问控制功能,并且与ACS令牌身份验证模型("帐户密钥")相比,支持对帐户中资源进行更细粒度的访问,我们强烈建议您在2018年6月22日之前更新代码并从ACS迁移到基于AAD的身份验证。
此外,快速迁移的一个关键原因是即将宣布弃用基于ACS密钥的身份验证系统。
媒体服务中使用AAD进行用户身份验证
本机应用程序首先从Azure Active Directory获取访问令牌,然后使用该访问令牌进行所有REST API调用。
以下示例显示了守护程序应用程序如何使用AAD Web应用程序凭据来使用REST服务对请求进行身份验证。
要使REST API请求成功,调用用户必须是其尝试访问的Azure Media Services帐户的“Contributor”或“Owner”。
.NET客户端SDK for Media Services的用户必须升级到Nuget( windowsazure.mediaservices版本4.1.0.1或更高版本)上的最新版本,才能使用AAD身份验证与REST请求进行通信。
您可以使用以下代码connect to the Media Services account。
class Program
{
// Read values from the App.config file.
private static readonly string _AADTenantDomain =
ConfigurationManager.AppSettings["AMSAADTenantDomain"];
private static readonly string _RESTAPIEndpoint =
ConfigurationManager.AppSettings["AMSRESTAPIEndpoint"];
private static readonly string _AMSClientId =
ConfigurationManager.AppSettings["AMSClientId"];
private static readonly string _AMSClientSecret =
ConfigurationManager.AppSettings["AMSClientSecret"];
private static CloudMediaContext _context = null;
static void Main(string[] args)
{
try
{
AzureAdTokenCredentials tokenCredentials =
new AzureAdTokenCredentials(_AADTenantDomain,
new AzureAdClientSymmetricKey(_AMSClientId, _AMSClientSecret),
AzureEnvironments.AzureCloudEnvironment);
var tokenProvider = new AzureAdTokenProvider(tokenCredentials);
_context = new CloudMediaContext(new Uri(_RESTAPIEndpoint), tokenProvider);
// Add calls to methods defined in this section.
// Make sure to update the file name and path to where you have your media file.
IAsset inputAsset =
UploadFile(@"C:\VideoFiles\BigBuckBunny.mp4", AssetCreationOptions.None);
IAsset encodedAsset =
EncodeToAdaptiveBitrateMP4s(inputAsset, AssetCreationOptions.None);
PublishAssetGetURLs(encodedAsset);
}
catch (Exception exception)
{
// Parse the XML error message in the Media Services response and create a new
// exception with its content.
exception = MediaServicesExceptionParser.Parse(exception);
Console.Error.WriteLine(exception.Message);
}
finally
{
Console.ReadLine();
}
}
注意:应用程序还需要更新其参考文献以包含新的程序集" Microsoft.WindowsAzure.MediaServices.Client.Common.Authentication.dll
"并添加对该命名空间的引用以及对" Microsoft.IdentityModel.Clients.ActiveDirectory
"的引用。程序集以访问ITokenProvider
接口。
点击API访问权限,然后选择"
使用用户身份验证和#34;连接到Azure Media Services API。
这包括您需要调用的API端点,以及ClientID,Domain和Resource。
有关如何使用Azure AD连接Media Services的详细信息,可以参考此article。