# An Identity Model for Providing Inclusive Services and Applications
## 5 Validation and Results
### Use Case  
We have developed a simple blog page as a sample OAuth 2.0 client (Use case blog service: [[https://github.com/Lourdesmarco/allymodel-use-case](https://github.com/Lourdesmarco/allymodel-use-case)]([https://github.com/Lourdesmarco/allymodel-use-case](https://github.com/Lourdesmarco/allymodel-use-case))). The blog application serves different web interfaces depending on the users' functional attributes received after authentication. Table 6 summarizes the interfaces we have designed and the conditions under which each of them are provided. \begin{table}
\begin{tabular}{l l l} \hline \hline
**Interface** & **Description** & **Condition** \\ \hline Interface 1 & Article & No modifications \\  & Article high contrast & Vision\(>\)=1 \& Vision\(<\)100 \\ \hline Interface 2 & Article adapted to cognition level & Cognition\(>\)=1 \\ \hline Interface 3 & Voice User Interface Suggestion & Vision=100, manipulation\(<\)=100 \\  & High contrast VUI Suggestion & Vision\(>\)=50 + Manipulation\(>\)=50 \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Interfaces summary. Figure 5: Keyrock’s interface for defining functional attributes. Figure 6: User profile returned by Keyrock. For testing the service, we have deployed a Keyrock instance with support to our proposed model. We have registered the designed blog application in the Keyrock instance using an OAuth 2.0 library to delegate users' authentication to Keyrock's OAuth 2.0 server. Then, we have created five users which will define their functional capabilities using Keyrock's interface according to the functional attributes enumerated in Table 7.  
Figure 7 shows an example of how two of the registered users access the service. We can see how they have to sign in the application and how the service is responding according to the personal attributes each user has. In the example, both users are consuming the same service but not through the same interface, as explained below. _User 4_ has 100% vision disability, meaning he is blind. To get a custom experience with the service, the user (helped by a guide-interpreter if needed) completes his functional attributes (_vision_ = 100). When accessing the blog service, he gets the log in interface. Easily, he can log in using Keyrock interface that is adapted to be usable. After the authentication process, Keyrock returns an OAuth 2.0 access token that represents the user. Using this token, the service requests the user profile that is returned including the defined functional attributes. As a result, the blog service can evaluate the user profile and responds to the user with a custom interface based on his personal attributes. In the implementation of the service we include all the designed interfaces as views (in this case using Embedded JavaScript templates). Then, we include in the application business logic a correspondence between the ranges of the different attributes and the interfaces according to the details of Table 6. Thus, when the application has to render the requested view, checks this correspondence to decide which one has to be selected. In the use case and for _User 4_, _Interface 3_ (Figure 8) is served to suggest the user to use Voice User Interface. The latter has been developed using Amazon's cloud-based voice service (Alexa skills: [[https://developer.amazon.com/alexa](https://developer.amazon.com/alexa)]([https://developer.amazon.com/alexa](https://developer.amazon.com/alexa))). To use the skill, the user needs to activate it and just ask [PERSON] to open the service. \begin{table}
\begin{tabular}{l l} \hline \hline
**User** & **Functional Attributes** \\ \hline User 1 & No modifications \\ User 2 & Cognition = 60 \\ User 3 & Vision = 70 \\ User 4 & Vision = 100 \\ User 5 & Vision = 40, Manipulation = 70 \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Users & Functional attributes. Figure 7: Use case diagram. The second user (_User 2_) has a completely different scenario. She has a 60% cognition disability, meaning she has problems reading and understanding very long or complex texts.