创建媒体服务凭据

时间:2018-04-18 16:53:21

标签: azure azure-storage azure-media-services

我正在尝试设置Azure媒体服务。我从Azure创建了媒体服务,但我不知道从哪里可以获取帐户密钥。

  

client = new CloudMediaContext(new MediaServicesCredentials(accountName,accountKey));

我正在关注本教程:Integrating applications with Azure Active Directory

但是在“添加应用程序凭据或访问Web API的权限”中的步骤4中获取密钥后,无效。

1 个答案:

答案 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服务对请求进行身份验证。

enter image description here

要使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。

enter image description here

这包括您需要调用的API端点,以及ClientID,Domain和Resource。

enter image description here

有关如何使用Azure AD连接Media Services的详细信息,可以参考此article