{"action":"created","comment":{"url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/comments/97120864","pull_request_review_id":17728345,"id":97120864,"diff_hunk":"@@ -6,98 +6,104 @@ author: dstrockis\n \r\n # Authenticating to Azure AD in daemon apps with certificates\r\n \r\n-This sample is similar to Daemon-DotNet, except instead of the daemon using a password as a credential to authenticate with Azure AD, it uses a certificate.\r\n+This sample is similar to [Daemon-DotNet](https://github.com/Azure-Samples/active-directory-dotnet-daemon), except instead of the daemon using a password as a credential to authenticate with Azure AD, it uses a certificate.\r\n \r\n-For more information about how the protocols work in this scenario and other scenarios, see [Authentication Scenarios for Azure AD](http://go.microsoft.com/fwlink/?LinkId=394414).\r\n+For more information about how the protocols work in this scenario and other scenarios, see [Authentication Scenarios for Azure AD](http://go.microsoft.com/fwlink/?LinkId=394414) and [Service to service calls using client credentials](https://github.com/Microsoft/azure-docs/blob/master/articles/active-directory/develop/active-directory-protocols-oauth-service-to-service.md)\r\n \r\n > Looking for previous versions of this code sample? Check out the tags on the [releases](../../releases) GitHub page.\r\n \r\n-## How To Run This Sample\r\n+## How to Run this sample\r\n \r\n-To run this sample you will need:\r\n-- Visual Studio 2013\r\n-- The Azure AD module for Powershell\r\n-- The makecert.exe utility from the Windows SDK\r\n+To run this sample, you will need:\r\n+- Visual Studio 2013 or above\r\n+- PowerShell (normally included with Windows)\r\n - An Internet connection\r\n - An Azure Active Directory (Azure AD) tenant. For more information on how to get an Azure AD tenant, please see [How to get an Azure AD tenant](https://azure.microsoft.com/en-us/documentation/articles/active-directory-howto-tenant/) \r\n-- A user account in your Azure AD tenant. This sample will not work with a Microsoft account, so if you signed in to the Azure portal with a Microsoft account and have never created a user account in your directory before, you need to do that now.\r\n \r\n ### Step 1:  Clone or download this repository\r\n \r\n-From your shell or command line:\r\n+You can clone this repository from Visual Studio. Alternatively, from your shell or command line, use:\r\n \r\n `git clone https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential.git`\r\n \r\n ### Step 2:  Register the sample with your Azure Active Directory tenant\r\n \r\n-There are two projects in this sample.  Each needs to be separately registered in your Azure AD tenant.\r\n+There are two projects in this sample.  Each project needs to be separately registered in your Azure AD tenant.\r\n \r\n #### Register the TodoListService web API\r\n \r\n-1.Sign in to the [Azure portal](https://portal.azure.com).\r\n-2.On the top bar, click on your account and under the **Directory** list, choose the Active Directory tenant where you wish to register your application.\r\n-2.Click on **More Services** in the left hand nav, and choose **Azure Active Directory**.\r\n-3.Click on **App registrations** and choose **Add**.\r\n-4.Enter a friendly name for the application, for example 'TodoListService' and select 'Web Application and/or Web API' as the Application Type. For the sign-on URL, enter the base URL for the sample, which is by default `https://localhost:44321`. For the App ID URI, enter `https://<your_tenant_name>/TodoListService`, replacing `<your_tenant_name>` with the name of your Azure AD tenant. Click on **Create** to create the application.\r\n-5.While still in the Azure portal, choose your application, click on **Settings** and choose **Properties**.\r\n-6.Find the Application ID value and copy it to the clipboard.\r\n+1. Sign in to the [Azure portal](https://portal.azure.com).\r\n+2. On the top bar, click on your account and under the **Directory** list, choose the Active Directory tenant where you wish to register your application.\r\n+2. Click on **More Services** in the left hand nav, and choose **Azure Active Directory**.\r\n+3. Click on **App registrations** and choose **Add**.\r\n+4. Enter a friendly name for the application, for example 'TodoListService' and select 'Web Application and/or Web API' as the Application Type. For the sign-on URL, enter the base URL for the sample, which is by default `https://localhost:44321`. For the App ID URI, enter `https://<your_tenant_name>/TodoListService`, replacing `<your_tenant_name>` with the name of your Azure AD tenant. Click on **Create** to create the application.\r\n+5. While still in the Azure portal, choose your application, click on **Settings** and choose **Properties**.\r\n+6. Find the Application ID value and copy it to the clipboard.\r\n \r\n #### Register the TodoListDaemonWithCert app\r\n \r\n \r\n-1.Sign in to the [Azure portal](https://portal.azure.com).\r\n-2.On the top bar, click on your account and under the **Directory** list, choose the Active Directory tenant where you wish to register your application.\r\n-2.Click on **More Services** in the left hand nav, and choose **Azure Active Directory**.\r\n-3.Click on **App registrations** and choose **Add**.\r\n-4.Enter a friendly name for the application, for example 'TodoListDaemonWithCert' and select 'Web Application and/or Web API' as the Application Type. \r\n-5.Since this application is a daemon and not a web application, it doesn't have a sign-in URL or app ID URI.  For these two fields, enter \"http://TodoListDaemonWithCert\". Click on **Create** to create the application.\r\n-6.While still in the Azure portal, choose your application, click on **Settings** and choose **Properties**.\r\n-7.Find the Application ID value and copy it to the clipboard.\r\n+1. Sign in to the [Azure portal](https://portal.azure.com).\r\n+2. On the top bar, click on your account and under the **Directory** list, choose the Active Directory tenant where you wish to register your application.\r\n+2. Click on **More Services** in the left hand nav, and choose **Azure Active Directory**.\r\n+3. Click on **App registrations** and choose **Add**.\r\n+4. Enter a friendly name for the application, for example 'TodoListDaemonWithCert' and select *'Web Application and/or Web API'* as the Application Type (even if here we have a console application). \r\n+5. Since this application is a daemon and not a web application, it doesn't have a sign-in URL or app ID URI.  For these two fields, enter \"http://TodoListDaemonWithCert\". Click on **Create** to create the application.\r\n+6. While still in the Azure portal, choose your application, click on **Settings** and choose **Properties**.\r\n+7. Find the Application ID value and copy it to the clipboard.\r\n \r\n \r\n #### Create a self-signed certificate\r\n \r\n-To complete this step you will need the makecert.exe and pvk2pfx.exe utilities, which is included in the Windows SDK.  You may have installed the Windows SDK with Visual Studio 2013, in which case you will find it if you search your computer for makecert.exe.  If not, you can download the SDK [here](http://msdn.microsoft.com/en-US/windows/desktop/aa904949).  You only need to install the Windows Software Development Kit part of the SDK.  You can find more information about the makecert.exe utility [here](http://msdn.microsoft.com/en-us/library/bfsktky3(v=vs.110).aspx).\r\n+To complete this step you will use the `New-SelfSignedCertificate` Powershell command. You can find more information about the New-SelfSignedCertificat command [here](https://technet.microsoft.com/library/hh848633).\r\n \r\n-Run makecert.exe with the following parameters to create a self-signed certificate on your computer:\r\n+Open PowerShell and run New-SelfSignedCertificate with the following parameters to create a self-signed certificate in the user certificate store on your computer:\r\n \r\n ```\r\n-makecert -r -pe -n \"CN=TodoListDaemonWithCert\" -ss My -len 2048 TodoListDaemonWithCert.cer -sv TodoListDaemonPrivateKey.pvk\r\n+$cert=New-SelfSignedCertificate -Subject \"CN=TodoListDaemonWithCert\" -CertStoreLocation \"Cert:\\CurrentUser\\My\"  -KeyExportPolicy Exportable -KeySpec Signature \r\n ```\r\n \r\n-When prompted, create a password for the certificate and remember it for later.  \r\n+If needed you can later export this certificate using the \"Manage User Certificate\" MMC snap-in accessible from the Windows Control Panel. You can also add other options to generate the certificate in a different\r\n+store such as the Computer or service store (See [How to: View Certificates with the MMC Snap-in](https://msdn.microsoft.com/en-us/library/ms788967)).\r\n \r\n #### Add the certificate as a key for the TodoListDaemonWithCert application in Azure AD\r\n-\r\n-Open powershell and navigate to the directory where you created your new certificate.  Use the following powershell commands to generate a `$base64Value`, a `$base64Thumbprint`, and a `$keyid` that you can use to upload your cert to Azure AD:\r\n+##### Generate a textual file containing the certificate credentials in a form consumable by AzureAD\r\n+Copy and paste the following lines in the sam PowerShell window. They generate a text file in the current folder containing information that you can use to upload your certificate to Azure AD:\r\n \r\n ```\r\n-$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2\r\n-$cer.Import(\"TodoListDaemonWithCert.cer\")\r\n-$bin = $cer.GetRawCertData()\r\n+$bin = $cert.RawData\r\n $base64Value = [System.Convert]::ToBase64String($bin)\r\n-$bin = $cer.GetCertHash()\r\n+$bin = $cert.GetCertHash()\r\n $base64Thumbprint = [System.Convert]::ToBase64String($bin)\r\n $keyid = [System.Guid]::NewGuid().ToString()\r\n-```\r\n-\r\n-To associate the certificate credential with the TodoListDaemonWithCert app object in Azure AD, you will need to make use of the application manifest.  In the Azure Management Portal app registration for the `TodoListDaemonWithCert`, click **Manage Manifest** --> **Download Manifest** in the bottom drawer.\r\n-\r\n-Open the manifest if your favorite text editor, and replace the `keyCredentials` property with your new certificate information from above, using the following schema:\r\n+$jsonObj = @{customKeyIdentifier=$base64Thumbprint;keyId=$keyid;type=\"AsymmetricX509Cert\";usage=\"Verify\";value=$base64Value}\r","path":"README.md","position":114,"original_position":114,"commit_id":"de21127617f6c48dee3492b0428b8613a02225ad","original_commit_id":"de21127617f6c48dee3492b0428b8613a02225ad","user":{"login":"jmprieur","id":13203188,"avatar_url":"https://avatars.githubusercontent.com/u/13203188?v=3","gravatar_id":"","url":"https://api.github.com/users/jmprieur","html_url":"https://github.com/jmprieur","followers_url":"https://api.github.com/users/jmprieur/followers","following_url":"https://api.github.com/users/jmprieur/following{/other_user}","gists_url":"https://api.github.com/users/jmprieur/gists{/gist_id}","starred_url":"https://api.github.com/users/jmprieur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmprieur/subscriptions","organizations_url":"https://api.github.com/users/jmprieur/orgs","repos_url":"https://api.github.com/users/jmprieur/repos","events_url":"https://api.github.com/users/jmprieur/events{/privacy}","received_events_url":"https://api.github.com/users/jmprieur/received_events","type":"User","site_admin":false},"body":"the script now generate the whole section of the manifest.","created_at":"2017-01-20T17:50:39Z","updated_at":"2017-01-20T17:50:39Z","html_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pull/23#discussion_r97120864","pull_request_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23","_links":{"self":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/comments/97120864"},"html":{"href":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pull/23#discussion_r97120864"},"pull_request":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23"}}},"pull_request":{"url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23","id":101688550,"html_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pull/23","diff_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pull/23.diff","patch_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pull/23.patch","issue_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues/23","number":23,"state":"open","locked":false,"title":"Fixes Readme.md","user":{"login":"jmprieur","id":13203188,"avatar_url":"https://avatars.githubusercontent.com/u/13203188?v=3","gravatar_id":"","url":"https://api.github.com/users/jmprieur","html_url":"https://github.com/jmprieur","followers_url":"https://api.github.com/users/jmprieur/followers","following_url":"https://api.github.com/users/jmprieur/following{/other_user}","gists_url":"https://api.github.com/users/jmprieur/gists{/gist_id}","starred_url":"https://api.github.com/users/jmprieur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmprieur/subscriptions","organizations_url":"https://api.github.com/users/jmprieur/orgs","repos_url":"https://api.github.com/users/jmprieur/repos","events_url":"https://api.github.com/users/jmprieur/events{/privacy}","received_events_url":"https://api.github.com/users/jmprieur/received_events","type":"User","site_admin":false},"body":"Fixes issue #19 and formating","created_at":"2017-01-16T13:16:54Z","updated_at":"2017-01-20T17:50:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b0946d35a838fe06666b6cbeb0b897e5610c2647","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23/commits","review_comments_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23/comments","review_comment_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues/23/comments","statuses_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/statuses/de21127617f6c48dee3492b0428b8613a02225ad","head":{"label":"jmprieur:jmprieur/fixReadMe","ref":"jmprieur/fixReadMe","sha":"de21127617f6c48dee3492b0428b8613a02225ad","user":{"login":"jmprieur","id":13203188,"avatar_url":"https://avatars.githubusercontent.com/u/13203188?v=3","gravatar_id":"","url":"https://api.github.com/users/jmprieur","html_url":"https://github.com/jmprieur","followers_url":"https://api.github.com/users/jmprieur/followers","following_url":"https://api.github.com/users/jmprieur/following{/other_user}","gists_url":"https://api.github.com/users/jmprieur/gists{/gist_id}","starred_url":"https://api.github.com/users/jmprieur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmprieur/subscriptions","organizations_url":"https://api.github.com/users/jmprieur/orgs","repos_url":"https://api.github.com/users/jmprieur/repos","events_url":"https://api.github.com/users/jmprieur/events{/privacy}","received_events_url":"https://api.github.com/users/jmprieur/received_events","type":"User","site_admin":false},"repo":{"id":79117599,"name":"active-directory-dotnet-daemon-certificate-credential","full_name":"jmprieur/active-directory-dotnet-daemon-certificate-credential","owner":{"login":"jmprieur","id":13203188,"avatar_url":"https://avatars.githubusercontent.com/u/13203188?v=3","gravatar_id":"","url":"https://api.github.com/users/jmprieur","html_url":"https://github.com/jmprieur","followers_url":"https://api.github.com/users/jmprieur/followers","following_url":"https://api.github.com/users/jmprieur/following{/other_user}","gists_url":"https://api.github.com/users/jmprieur/gists{/gist_id}","starred_url":"https://api.github.com/users/jmprieur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmprieur/subscriptions","organizations_url":"https://api.github.com/users/jmprieur/orgs","repos_url":"https://api.github.com/users/jmprieur/repos","events_url":"https://api.github.com/users/jmprieur/events{/privacy}","received_events_url":"https://api.github.com/users/jmprieur/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jmprieur/active-directory-dotnet-daemon-certificate-credential","description":"A .NET 4.5 daemon application that uses a certificate to authenticate with Azure AD and get OAuth 2.0 access tokens.","fork":true,"url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential","forks_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/forks","keys_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/teams","hooks_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/hooks","issue_events_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/issues/events{/number}","events_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/events","assignees_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/assignees{/user}","branches_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/branches{/branch}","tags_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/tags","blobs_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/git/refs{/sha}","trees_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/statuses/{sha}","languages_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/languages","stargazers_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/stargazers","contributors_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/contributors","subscribers_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/subscribers","subscription_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/subscription","commits_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/commits{/sha}","git_commits_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/git/commits{/sha}","comments_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/comments{/number}","issue_comment_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/issues/comments{/number}","contents_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/contents/{+path}","compare_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/merges","archive_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/downloads","issues_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/issues{/number}","pulls_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/pulls{/number}","milestones_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/milestones{/number}","notifications_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/labels{/name}","releases_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/releases{/id}","deployments_url":"https://api.github.com/repos/jmprieur/active-directory-dotnet-daemon-certificate-credential/deployments","created_at":"2017-01-16T12:47:43Z","updated_at":"2017-01-16T12:47:46Z","pushed_at":"2017-01-20T17:44:55Z","git_url":"git://github.com/jmprieur/active-directory-dotnet-daemon-certificate-credential.git","ssh_url":"git@github.com:jmprieur/active-directory-dotnet-daemon-certificate-credential.git","clone_url":"https://github.com/jmprieur/active-directory-dotnet-daemon-certificate-credential.git","svn_url":"https://github.com/jmprieur/active-directory-dotnet-daemon-certificate-credential","homepage":"","size":1110,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Azure-Samples:master","ref":"master","sha":"4c7828942354c4b8c7645d2957197461d525c178","user":{"login":"Azure-Samples","id":1844662,"avatar_url":"https://avatars.githubusercontent.com/u/1844662?v=3","gravatar_id":"","url":"https://api.github.com/users/Azure-Samples","html_url":"https://github.com/Azure-Samples","followers_url":"https://api.github.com/users/Azure-Samples/followers","following_url":"https://api.github.com/users/Azure-Samples/following{/other_user}","gists_url":"https://api.github.com/users/Azure-Samples/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure-Samples/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure-Samples/subscriptions","organizations_url":"https://api.github.com/users/Azure-Samples/orgs","repos_url":"https://api.github.com/users/Azure-Samples/repos","events_url":"https://api.github.com/users/Azure-Samples/events{/privacy}","received_events_url":"https://api.github.com/users/Azure-Samples/received_events","type":"Organization","site_admin":false},"repo":{"id":18254648,"name":"active-directory-dotnet-daemon-certificate-credential","full_name":"Azure-Samples/active-directory-dotnet-daemon-certificate-credential","owner":{"login":"Azure-Samples","id":1844662,"avatar_url":"https://avatars.githubusercontent.com/u/1844662?v=3","gravatar_id":"","url":"https://api.github.com/users/Azure-Samples","html_url":"https://github.com/Azure-Samples","followers_url":"https://api.github.com/users/Azure-Samples/followers","following_url":"https://api.github.com/users/Azure-Samples/following{/other_user}","gists_url":"https://api.github.com/users/Azure-Samples/gists{/gist_id}","starred_url":"https://api.github.com/users/Azure-Samples/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Azure-Samples/subscriptions","organizations_url":"https://api.github.com/users/Azure-Samples/orgs","repos_url":"https://api.github.com/users/Azure-Samples/repos","events_url":"https://api.github.com/users/Azure-Samples/events{/privacy}","received_events_url":"https://api.github.com/users/Azure-Samples/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential","description":"A .NET 4.5 daemon application that uses a certificate to authenticate with Azure AD and get OAuth 2.0 access tokens.","fork":false,"url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential","forks_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/forks","keys_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/teams","hooks_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/hooks","issue_events_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues/events{/number}","events_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/events","assignees_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/assignees{/user}","branches_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/branches{/branch}","tags_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/tags","blobs_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/git/refs{/sha}","trees_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/statuses/{sha}","languages_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/languages","stargazers_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/stargazers","contributors_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/contributors","subscribers_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/subscribers","subscription_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/subscription","commits_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/commits{/sha}","git_commits_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/git/commits{/sha}","comments_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/comments{/number}","issue_comment_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues/comments{/number}","contents_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/contents/{+path}","compare_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/merges","archive_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/downloads","issues_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues{/number}","pulls_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls{/number}","milestones_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/milestones{/number}","notifications_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/labels{/name}","releases_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/releases{/id}","deployments_url":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/deployments","created_at":"2014-03-30T01:07:00Z","updated_at":"2016-12-15T15:51:10Z","pushed_at":"2017-01-20T17:44:57Z","git_url":"git://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential.git","ssh_url":"git@github.com:Azure-Samples/active-directory-dotnet-daemon-certificate-credential.git","clone_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential.git","svn_url":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential","homepage":"","size":1109,"stargazers_count":11,"watchers_count":11,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":9,"forks":9,"open_issues":9,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23"},"html":{"href":"https://github.com/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pull/23"},"issue":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues/23"},"comments":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/issues/23/comments"},"review_comments":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23/comments"},"review_comment":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/pulls/23/commits"},"statuses":{"href":"https://api.github.com/repos/Azure-Samples/active-directory-dotnet-daemon-certificate-credential/statuses/de21127617f6c48dee3492b0428b8613a02225ad"}}}}
{"actor":{"display_login":"jmprieur"}}