title: Thinktecture identity server client selection and implementation
body: <p>I am trying to get my head out of the clouds with identity server.</p>
  
  <p>I would like to implement the identity server project to let authenticate</p>
  
  <ol>
  <li>An ASP.NET MVC 5 application</li>
  <li>An ASP.NET Web API</li>
  <li>A windows service implementation</li>
  </ol>
  
  <p>Int <a href="https://aaronparecki.com/2012/07/29/2/oauth2-simplified" rel="nofollow">this blog post</a> I have read some details about clients. The author simply state:</p>
  
  <blockquote>
    <p>OAuth 2 provides several "grant types" for different use cases. The
    grant types defined are:</p>
    
    <ol>
    <li>Authorization Code for apps running on a web server</li>
    <li>Implicit for browser-based or mobile apps</li>
    <li>Password for logging in with a username and password</li>
    <li>Client credentials for application access</li>
    </ol>
  </blockquote>
  
  <p>What are the differences between Authorization Code and Implicit? Do this means that implicit should be used for example by javascript code?</p>
  
  <p>It is right to say that I need:</p>
  
  <ol>
  <li>the Password grant for ASP.NET MVC application</li>
  <li>Client credentials for Web API</li>
  <li>Authorization Code for the windows service?</li>
  </ol>
  
  <p>Also another question, I would like to implement authorization in my web api based either on Bearer Token as well as a simple apiKey. Can both types cohesist? How do I implement apiKey by using Identity server?</p>
  
  <p>thanks a lot and excuse me if these are stupid questions.</p>